如何覆盖ScraPy';s请求,并改用python请求?
我一直在寻找开始使用一个大型网页抓取项目。在过去的5年里,我一直在使用(人类的HTTP)和我搜集的大多数网站 我想通过如何覆盖ScraPy';s请求,并改用python请求?,python,python-3.x,scrapy,python-requests,Python,Python 3.x,Scrapy,Python Requests,我一直在寻找开始使用一个大型网页抓取项目。在过去的5年里,我一直在使用(人类的HTTP)和我搜集的大多数网站 我想通过Scrapy.Request使用请求库的原因: 在玩Scrapy时,我注意到内容返回到非常原始的状态,即它更等同于原始格式。然而,对于requests.content和requests.text而言,由于requests更优雅地处理内容编码,因此输出更干净 我看到Scrapy.Request没有返回与requests库相同的内容 requests提供了方便访问响应头(如链接)的
Scrapy.Request使用请求
库的原因:
- 在玩
时,我注意到内容返回到非常原始的状态,即它更等同于原始格式。然而,对于Scrapy
和requests.content
而言,由于requests.text
更优雅地处理内容编码,因此输出更干净requests
- 我看到
没有返回与Scrapy.Request
库相同的内容requests
提供了方便访问响应头(如链接)的简单方法,而requests
则不提供(还将头转换为大写,并强制将格式转换为字节)Scrapy.Request
提供了一种方便的requests
方法(我知道,我知道,虽然很琐碎,但仍然如此)。自2016年以来,它已经在中进行了简要讨论,基本上已经腐烂response.json()
python请求
与ScraPy
一起使用的其他问题一样,人们要么在不知不觉中认为老年退休金计划是在谈论Scrapy.Request
,要么干脆忽略了问题的要点,提供了一个与老年退休金计划的请求相当的Scrapy.Request
我开始研究的第一个Scrapy
方法是重写Scrapy.Request
没有运气
然后我想看看是否有人创建了一个允许插入python请求
兼容性的定制
没有运气
最后,我想尝试搜索上游解决方案,包括Twisted
处理请求的方式。这是唯一一个我能找到接近解决方案的地方。然而,似乎没有办法将其与Scrapy
联系起来
所以,在完成我的研究之后,我在这里寻求帮助
最后,问题
虽然我知道这可能是不明智的,但我在问如何覆盖
Scrapy.Request
以在整个项目中使用python请求
它不会工作,因为请求不是异步的。除非你同意,在这种情况下,我看不出使用scrapy的意义
如果您对零碎的请求不满意,可以尝试或切换到Go或Node等异步语言。
txrequests
负责将请求
库扩展为异步。我只是不知道如何或在哪里应用它,因为它将在整个项目中使用。我猜它应该在一个定制的下载中间件中
。我从来没有听说过txrequests。您可能需要联系作者。