- from urllib import request,parse
- def get(url,headers=None):
- return urlrequests(url,headers=headers)
- def post(url,form,headers=None):
- return urlrequests(url,form,headers=headers)
- #1, 传入 url
- #2.user-agent
- #3.headers
- #4. 定义 request
- #5.urlopen
- #6. 返回 bytes 数组
- def urlrequests(url,form=None,headers=None):
- from http import cookiejar
- cookie = cookiejar.CookieJar()
- handler = request.HTTPCookieProcessor(cookie)
- opener = request.build_opener(handler)
- #如果需要用户自行传入 headers 则覆盖当前的 headers
- if headers == None:
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ApplewebKit/537.36 (Khtml, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
- }
- html_bytes = b''
- try:
- if form:
- # POST
- #先转成 str 再转成 bytes
- form_bytes = parse.urlencode(form).encode('utf-8')
- req = request.Request(url,data=form_bytes,headers=headers)
- else:
- #GET
- req = request.Request(url,headers=headers)
- response = opener.open(req)
- html_bytes = response.read()
- except:
- pass
- return html_bytes
- if __name__ == '__main__':
- url = 'http://www.baidu.com'
- ss = get(url)
- print(ss)
来源: http://www.bubuko.com/infodetail-2758110.html