在我们调用requests.get(网址)
访问网页时,输出为<Response [418]>
。是什么原因呢?
如下运行代码:
# 导入访问网页要用的库
import requests
# 申明一个变量存储网址
# 网址是一个字符串变量,注意网址前后都必须有引号
url = 'https://movie.douban.com'
# 用requests.get(网址)访问网页
# 库名.函数名(要访问的网址)
print(requests.get(url))
#type()函数查看requests.get()函数返回结果的类型
print(type(requests.get(url)))
【终端输出】
<Response [418]>
<class 'requests.models.Response'>
原因:
requests.get()函数返回<Response [418]>。
响应状态码418表示访问的网站有反爬虫机制,而解决方法就是带请求头header(suser-agent)访问。
User-Agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
解决方法:
在浏览器上手动打开Chrome的F12:
Network->Doc(如果没有出现这一排,可先按F5刷新一下)->Name下是你搜索的页面的html 点击一下(或按F5再刷新)->找到Headers下面的 User-Agent,复制图示框内所有。
怎么用User-Agent?
复制的内容写成字典形式,冒号前的User-Agent作为字典元素的键,冒号后整体以字符串形式(注意加引号)作为键值。
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'}
然后 将赋值语句 headers = headers
作为requests.get(url)
第二个参数。
代码改进:
import requests
url='https://www.douban.com'
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'}
res = requests.get(url,headers=headers)
print(res) # <Response [200]>
print(type(res)) # <class 'requests.models.Response'>
这样就可以进行爬取了。
标签:get,爬虫,Agent,headers,537.36,User,requests,原因 From: https://www.cnblogs.com/zhangxuegold/p/17558708.html注意:
- 爬虫的第一步是请求网页,原则上请求网页要返回200才能继续后面的操作。若
requests.get()
函数返回的响应状态码不是200,通常要查找请求不成功的原因,修正后在再继续后面的操作。