封装
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)