python爬虫day-2
2019-04-04 本文已影响0人
南音木
request模块:
2.Request()方法
代码一
import urllib.request
request=urllib.request.Request('https://python.org')
response=urllib.request.urlopen(request)
print(response.read().decode('utf-8'))
class urllib.request.Request (url, data=None, headers={},
origin_req_host=None,unverifiable=False,method=None)
1.第一个参数 url 用于请求 URL 这是必传参数,其他都是可选参数。
2.第二个参数 data 如果要传,必须传 bytes (字节流)类型的 。
3.第三个参数 headers是一个字典,它就是请求头,我们可以在构造请求时通过 headers 参数直接构造,也可以通过调用请求实例的 add_ header ()方法添加。
4.第四个参数 origin_req_ host 指的是请求方的 host 名称或者 IP 地址。
5.第五个参数 nuverifiable 表示这个请求是否是无法验证 的,默认是 False,意思就是说用户没有足够权限来选择接收这个请求的结果 。
6.第六个参数 method 一个字符串,用来指示请求使用的方法,比如 GET POST PUT。
from urllib import request,parse
url = 'http://httpbin.org/post'
headers={
'User-Agent':'Mozilla/4.0(compatible;MSIE 5.5;Windows NT)',
'Host':'httpbin.org'
}
dict={
'name':'Germey'
}
data=bytes(parse.urlencode(dict),encoding='utf8')
req=request.Request(url=url,data=data,headers=headers,method='POST')
response=request.urlopen(req)
print(response.read().decode('utf-8'))
headers 也可以用 add_ header ()方法来添加:
from urllib import request,parse
url = 'http://httpbin.org/post'
dict={
'name':'Germey'
}
data=bytes(parse.urlencode(dict),encoding='utf8')
req=request.Request(url=url,data=data,method='POST')
req.add_header('User-Agent','Mozilla/4 .0 (compatible; MSIE 5.5; Windows NT)')
response=request.urlopen(req)
print(response.read().decode('utf-8'))