from urllib import request,parse
from urllib.error import HTTPError,URLError
# 对get和post 提交方式再一次的进行封装
def get(url,headers = None):
return urlrequests(url,headers = headers)
def post(url,form = None,headers = None):
return urlrequests(url,form,headers=headers)
# 封装函数
def urlrequests(url,form=None,headers=None):
# 判断 headers 是否有传参,如果为空 则使用默认使用自定义的 user_agent
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
if headers == None:
headers = {
'User-Agent':user_agent
}
# 定义空字节流 bytes
html_bytes = b''
try:
# post 提交
# 如果 form 有传递参数 则 判断为post提交类型
if form:
#post # 转换为 请求参数类型 转换为bytes类型
form_str = parse.urlencode(form).encode('utf-8')
req =request.Request(url,data=form_str,headers = headers)
else:
# get 包装请求
req = request.Request(url,headers = headers)
# 发起请求 返回为二进制html文本
response = request.urlopen(req)
html_bytes = response.read()
except HTTPError as a:
print(a)
except URLError as a:
print(a)
return html_bytes
if __name__ == '__main__':
url = 'http://www.baidu.com'
html = urlrequests(url)
print(html)
urllib 简单请求函数封装 -1
猜你喜欢
转载自blog.csdn.net/weixin_42961627/article/details/81639310
今日推荐
周排行