Blog operation(get;post封装)(day1.fengzhuang_all)

封装

from urllib import request,parse
from urllib.error import HTTPError,URLError

def get(url,headers=None):
return url_requests(url,headers=headers)

def post(url,data,headers=None):
return url_requests(url,data,headers=headers)

def url_requests(url,data=None,headers=None):
# 伪装浏览器
user_agent = ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4620.400 QQBrowser/9.7.13014.400’
# 如果用户需要自行传入headers, 则覆盖之前的headers
if headers == None:
headers = {
‘User-Agent’:user_agent
}
html_bytes = b”
try:
if data:
# 有data则确认post请求
# 转换成str
data_str = parse.urlencode(data)
# 转换成bytes
data_ytes=data_str.encode(‘utf-8’)
# 构建请求对象
req = request.Request(url,data=data_ytes)
#简写
# req = request.Request(url,data=bytes(data_str,encoding=’utf-8’))

    else:
        # GET请求
        req = request.Request(url,headers=headers)
    response = request.urlopen(req)
    html_bytes = response.read().decode('utf-8')
# 服务器错误连接失败
except HTTPError as e:
    print(e)
# 连接超时
except URLError as e:
    print(e)
return html_bytes

if name == ‘main‘:
# url=’http://www.baidu.com
# print(get(url))
url = ‘http://fanyi.baidu.com/sug
while True:
ke=input(‘请输入要翻译的词语:’)
form = {
‘kw’: ke
}
html_bytes = post(url,data=form)
print(html_bytes)

猜你喜欢

转载自blog.csdn.net/q810935819/article/details/81637374