request 常用方法
一、request.Request
方法的使用
上一章节中介绍了
request.urlopen()
的使用,仅仅的很简单的使用,不能设置请求头及cookie
的东西,request.Request()
方法就是进一步的包装请求.
1、源码查看参数
class Request: def __init__(self, url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None): pass
2、使用请求百度
from urllib import request if __name__ == "__main__": headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36 OPR/54.0.2952.64' } req = request.Request(url='https://www.baidu.com', headers=headers) response = request.urlopen(req) print(response.read())
二、使用代理服务器
1、常见免费的代理地址
2、检测当前
ip
信息的测试网站3、使用代理
from urllib import request if __name__ == "__main__": headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36 OPR/54.0.2952.64' } # 创建使用代理 handler = request.ProxyHandler({"http": "186.103.173.189:58243"}) opener = request.build_opener(handler) # 包装请求对象 req = request.Request("http://httpbin.org/get", headers=headers) # 使用代理打开网站 response = opener.open(req) print(response.read().decode("utf8"))