urllib是Python内置的HTTP请求库,包含4个模块:request error parse robotparser
request
urlopen()
urllib.request.urloprn(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)
import urllib.request
response=urllib.request.urlopen('https://www.python.org')
print(response.read().decode('utf-8'))
data 参数是可选的。如果要添加该参数,并且如果它是字节流编码格式的内容,即bytes 类型,则需要通过bytes ()方法转化。另外,如果传递了这个参数,则它的请求方式就不再是GET 方式,而是POST 方式。
import urllib.parse
import urllib.request
data=bytes(urllib.parse.urlencode({'word':'hello'}),encoding='utf8')
response=urllib.requesturlopen('http://httpbin.org/post', data=data)
Request
class urllib.request.Request(url,data=None,headers={},origin_req_host=None,unverifiable=False,method=None)
url:必传参数
data:如果要传,只能传byte(字节流)类型的。如果是字典,用urllib.parse模块里的urlencode()编码
headers:请求头
origin_req_host:指的是请求方的host 名称或者IP 地址
unverifiable :这个请求是否是无法验证的,默认是False ,意思就是说用户没
有足够权限来选择接收这个请求的结果。例如,我们请求一个HTML 文档中的图片,但是我们没有自动抓取图像的权限,这时unverifiable 的值就是True
method :请求使用的方法,比如GET 、POST 和PUT
Robots协议
告诉爬虫和搜索引擎抓取哪些页面