跳转html时请求头怎么取,爬取网站时请求被拒绝?scrapy轻松解决请求头设置!就是不讲道理...

本文详细介绍了如何通过Scrapy进行默认请求头的控制,包括命令行执行、修改单次请求头、使用中间件设置全局头,以及重要性排序的设置规则。重点讲解了如何通过User-Agent伪装浏览器信息,以实现数据抓取的灵活性和隐私保护。
摘要由CSDN通过智能技术生成

137891577_1_20180708113144957

默认请求头

命令行执行,新建爬虫

scrapy startproject myspidercd myspider scrapy genspider scrapy_spider httpbin.org

我们通过对 https://httpbin.org/get?show_env=1 的请求,查看本次请求的浏览器信息,可以打开看一看是否是自己的浏览器信息

137891577_2_201807081131454

将返回的文本复制到 https://www.json.cn/ 格式化成便于查看的json格式,下面操作亦然,不再赘述。

137891577_3_2018070811314582

修改请求头

既然这样的话,那我们修改下请求头,达到伪造的效果

打开下面的链接,选一个自己喜欢的请求头

http://www.useragentstring.com/pages/useragentstring.php?name=Chrome

这里使用chrome浏览器请求头

137891577_4_20180708113145160

再次访问,发现我们的请求头已经成功更换

''User-Agent'':''Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'',

方式三:链接设置

此方法对单个链接生效, 只是此次请求的这个链接享受

在Request方法中设置headers参数

137891577_5_20180708113145254

方法四:中间件设置

此方法可以从整个项目中去修改请求头的设置规则,变化多端,不同的写法,可以配置出不同的设置方式,下面是一个比较简单的示例

我们参考scrapy默认处理请求头的中间件

from scrapy.downloadermiddlewares.useragent import UserAgentMiddleware

编写中间件

137891577_6_20180708113145316

作用优先级

如果作如下设置

# settings.pyUSER_AGENT = ''settings''

# scrapy_spider.pycustom_settings = { ''USER_AGENT'': ''custom_settings'', }headers={''User-Agent'': ''header''}

运行效果为:

''User-Agent'':''header''

注释掉headers

''User-Agent'':''custom_settings''

注释掉custom_settings

''User-Agent'':''custom_settings''

注释掉settings

''User-Agent'':''Scrapy/1.1.2 (+http://scrapy.org)''

可见优先级为:

headers > custom_settings > settings.py > Scrapy默认

注意

注意User-Agent参数的写法

headers={''User-Agent'': USER_AGENT})

如果写错了,很可能发生奇怪的事情

headers={''User_Agent'': USER_AGENT}

请求头中多了Scrapy…

''User-Agent'':''Scrapy/1.1.2 (+http://scrapy.org),Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'',

其实,很好区分:

User-Agent: 浏览器请求头参数,html代码中经常用-

USER_AGENT: python变量

建议:

每次写浏览器参数,如果怕写错就打开自己的浏览器,随便测试一个页面,从里边复制

137891577_7_20180708113145379

作为从入门到实战的我,踩过不少坑,此文做了简单的总结,也分享了几个比较实用的网站。希望此文的分享能给大家提供一个少走弯路的捷径,那么此文的价值也就体现了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值