首页 > 其他分享 >爬虫 | <Response [418]>原因

爬虫 | <Response [418]>原因

时间:2023-07-16 22:24:32浏览次数:40  
标签:get 爬虫 Agent headers 537.36 User requests 原因

在我们调用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'>

这样就可以进行爬取了。

注意:

  • 爬虫的第一步是请求网页,原则上请求网页要返回200才能继续后面的操作。若requests.get()函数返回的响应状态码不是200,通常要查找请求不成功的原因,修正后在再继续后面的操作。

标签:get,爬虫,Agent,headers,537.36,User,requests,原因
From: https://www.cnblogs.com/zhangxuegold/p/17558708.html

相关文章

  • 对端关闭连接原因学习
    转自:https://blog.csdn.net/xc_zhou/article/details/809507531、介绍对端关闭连接通常会出现 "connectionresetbypeer"的错误日志,导致发包失败,接口超时。是因为对端异常关闭socket连接,并且发送了RST报文异常终止连接,而不是发送FIN报文正常终止连接。如果一端的Socket被......
  • 数据库死锁原因以及解决
    有一篇讲了mvcc的基本原理:https://www.cnblogs.com/benjerry/p/17551031.html这样就知道最简单的死锁产生原因,就是有两个并发事务,事务1先更新a表某行数据,再更新b表某行数据,事务2先更新b表同行数据,再更新a表同行数据,就非常有可能死锁了。还有种写法,selectforupdate,将共享锁上升......
  • 联合查询后,索引无效原因分析
    在一次项目中需要甲方提供视图给我们,甲方是通过union合并两个表格生成视图给我们,但在查询过程中发现加了主键条件后,没走索引,造成15分钟依据不能出来数据,后来在本地数据库新建两个表测试,合并生成视图后是可以走两个子表的索引,于是在本地按照甲方的表结构创建表并导入部分测......
  • 重庆摩托车多的原因(研究性学习
    独特的地理位置重庆是一座山城,主城大部分地区都是山地,海拔高差达到2723.7米。这里的建筑都是依山而建,并且密度很大,导致重庆的道路不会很平坦,也相对狭窄。骑摩托车可以在大街小巷中穿梭,摩托车较小的体型可以方便地通过这些地形复杂的区域,令人们的出行变得更加方便快捷。企业与社......
  • python爬虫抓取小说
    我这里是使用的requests模块和re(正则)模块可以模仿浏览器正常访问网页返回网页源码的方式,通过正则获取到小说的名字,以及每个章节名称和对应的网页链接,并将小说正文截取出来,写入到文本中,具体代码实现如下:#导入requests模块importrequests#导入re(正则)模块importre#下......
  • 「爬虫04」selenium
    1selenium等待元素加载#程序执行速度很快---》获取标签---》标签还没加载好---》直接去拿会报错#显示等待:当你要找一个标签的时候,给它加单独加等待时间#隐士等待:只要写一行,代码中查找标签,如果标签没加载好,会自动等待 browser.implicitly_wait(10)2selenium元素操作#......
  • 爬虫突破验证码技巧 - 2Captcha
    在互联网世界中,验证码作为一种防止机器人访问的工具,是爬虫最常遇到的阻碍。验证码的类型众多,从简单的数字、字母验证码,到复杂的图像识别验证码,再到更为高级的交互式验证码,每一种都有其独特的识别方法和应对策略。在这篇文章中,我们将一一介绍各种验证码的工作原理和使用2Captcha进......
  • java过滤器塞不进去参数原因
    Java过滤器塞不进去参数原因解决方法作为一名经验丰富的开发者,我将为你解释在Java中为什么过滤器无法将参数传递,并提供解决方法。首先,让我们看一下整个过程的步骤:步骤操作1在Web.xml中配置过滤器2创建过滤器类3在过滤器类中获取和处理参数步骤1:在Web.xml中......
  • 视频融合平台EasyCVR接口调用正常,但快照不显示是什么原因?
    EasyCVR平台能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等,平台融合性强、开放度高、部署轻快,在智慧工地、智慧园区、智慧工厂、智慧码头、智慧水利等场景中有着广泛的应用前景。有用户反馈,现场......
  • 视频融合平台EasyCVR级联时注册失败并报错401是什么原因?
    EasyCVR视频融合平台基于云边端一体化架构,具有强大的数据接入、处理及分发能力,平台既具备传统安防视频监控的能力与服务,也支持AI智能检测技术的接入,可应用在多行业领域的智能化监管场景中。平台可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控......