request的其他信息
- 返回访问的url
- request的头信息
读取单个信息
伪造头信息。
这里先说明一下为什么要伪造头信息。
打开一个百度主页。
然后打开F12控制台
找到这里,然后下滑
User-Agent,就是访问时,用户的信息。
而我们使用爬虫进行爬取某个网站,显示出来的用户信息是这样的。
我们可以借助一个网站来看我们的访问用户信息,把网站放在这
httpbin.org
我们用爬虫访问网站就是返回这个结果,而一些网站就用这个来拒绝爬虫访问,所以我们要伪造头信息
如果我们百度一个爬虫关键字,这就是我们之前讲的网页请求的get请求,但是我们具体用控制台来看这个请求
就变成了这个。
我们写一个程序来实现一下用爬虫,百度爬虫。
看到下面的报错没,ascii大家都不陌生,这里的错误就跟上面两张图片一样,没有转码。
urllib里面提供的转码模块
另一种转码模块.
我们这里使用的urlopen都是get请求,下面是post请求
可以翻译一下这句话
简明扼要就是data=None,get请求,data!=None,post请求
我们还是用这个网站,
还是需要转码。
from urllib.request import urlopen
from urllib.parse import urlencode
data = {
'name': 'tom',
'age': 18
}
by = bytes(urlencode(data),encoding='utf-8')
url = 'http://httpbin.org/post'
response = urlopen(url, data=by)
print(response.read().decode())
就到这里吧