如何覆盖ScraPy';s请求,并改用python请求?

如何覆盖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提供了方便访问响应头(如链接)的

我一直在寻找开始使用一个大型网页抓取项目。在过去的5年里,我一直在使用(人类的HTTP)和我搜集的大多数网站

我想通过
Scrapy.Request使用
请求
库的原因:

  • 在玩
    Scrapy
    时,我注意到内容返回到非常原始的状态,即它更等同于原始格式。然而,对于
    requests.content
    requests.text
    而言,由于
    requests
    更优雅地处理内容编码,因此输出更干净
  • 我看到
    Scrapy.Request
    没有返回与
    requests
    库相同的内容
  • requests
    提供了方便访问响应头(如链接)的简单方法,而
    Scrapy.Request
    则不提供(还将头转换为大写,并强制将格式转换为字节)
  • requests
    提供了一种方便的
    response.json()
    方法(我知道,我知道,虽然很琐碎,但仍然如此)。自2016年以来,它已经在中进行了简要讨论,基本上已经腐烂
我在StackOverflow上看到过类似的问题。最直接的请求是,但它没有得到太多的关注,就像我提到的想将
python请求
ScraPy
一起使用的其他问题一样,人们要么在不知不觉中认为老年退休金计划是在谈论
Scrapy.Request
,要么干脆忽略了问题的要点,提供了一个与老年退休金计划的请求相当的
Scrapy.Request

我开始研究的第一个
Scrapy
方法是重写
Scrapy.Request

没有运气

然后我想看看是否有人创建了一个允许插入
python请求
兼容性的定制

没有运气

最后,我想尝试搜索上游解决方案,包括
Twisted
处理请求的方式。这是唯一一个我能找到接近解决方案的地方。然而,似乎没有办法将其与
Scrapy
联系起来

所以,在完成我的研究之后,我在这里寻求帮助

最后,问题
虽然我知道这可能是不明智的,但我在问如何覆盖
Scrapy.Request
以在整个项目中使用
python请求

它不会工作,因为请求不是异步的。除非你同意,在这种情况下,我看不出使用scrapy的意义


如果您对零碎的请求不满意,可以尝试或切换到Go或Node等异步语言。

txrequests
负责将
请求
库扩展为异步。我只是不知道如何或在哪里应用它,因为它将在整个项目中使用。我猜它应该在一个定制的
下载中间件中
。我从来没有听说过txrequests。您可能需要联系作者。