python中带有scrapy和mongodb的异步HTTP服务器

伯纳特·费利普

我基本上是在尝试启动一个 HTTP 服务器,它将响应来自我可以使用 Scrapy 抓取的网站的内容。为了开始抓取网站,我需要登录它,为此我需要使用凭据等访问数据库。这里的主要问题是我需要一切都完全异步,到目前为止,我正在努力寻找一种组合,使一切正常工作,而无需许多草率的实现。

我已经让 Klein + Scrapy 工作了,但是当我开始实现数据库访问时,我的脑子里一片混乱。有什么方法可以让 PyMongo 与 Twisted 或其他东西异步(是的,我看过 TxMongo 但文档很糟糕,我想避免它。我也找到了 adbapi 的实现,但我想要更类似于 PyMongo 的东西)。

试图通过另一种方式思考问题,我确信 aiohttp 有更多的选项来实现async数据库访问和其他东西,但后来我发现自己陷入了与 Scrapy 集成的僵局。

我见过像scrapa、scrapyd和ScrapyRT这样的东西,但这些对我来说并不真正有效。还有其他选择吗?

最后,如果没有任何效果,我将只使用 aiohttp 而不是 Scrapy,我将向 websito 发出请求以手动废弃并使用 beautifulsoup 或类似的东西从响应中获取我需要的信息。关于如何走这条路有什么建议吗?

感谢您的关注,我在这方面是个菜鸟,所以我不知道我是否完全有道理。无论如何,任何帮助将不胜感激:)

诺斯洛

有没有办法让pymongo与twisted异步

不。pymongo 被设计为一个同步库,如果不基本上重写它,你就无法使它异步(你可以使用线程或进程,但这不是你问的,你也可能遇到线程安全问题的代码)。

试图通过另一种方式思考问题,我确信 aiohttp 有更多的选项来实现异步数据库访问和其他东西

它没有。aiohttp是一个 http 库 - 它可以异步执行 http,仅此而已,它没有帮助您访问数据库。你必须在它上面基本上重写 pymongo。

最后,如果没有任何效果,我将只使用 aiohttp 而不是scrapy,我将向websito 发出请求以手动废弃并使用beautifulsoup 或类似的东西从响应中获取我需要的信息。

这意味着不使用scrapy需要做很多工作,而且它不会帮助你解决pymongo问题——你仍然需要重写pymongo!

我的建议是——学习txmongo如果您不能并且想要重写它,请使用twisted.web来编写它而不是aiohttp从那时起您可以继续使用scrapy

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在python中显示/保存从服务器收到的带有http请求的xlsx文件?

来自分类Dev

带有NodeJ和boost :: asio组合的异步服务器

来自分类Dev

带有阻止请求的Gevent异步服务器

来自分类Dev

node.js服务器和带有express.js的HTTP / 2(2.0)

来自分类Dev

带有Poco和Boost C ++的多个Http服务器

来自分类Dev

在Python中模拟HTTP服务器

来自分类Dev

在Python中模拟HTTP服务器

来自分类Dev

使用带有 python API 而不是 HTTP 服务器的 Rasa NLU 模型

来自分类Dev

HTTP 服务器发送带有响应的新请求

来自分类Dev

带有较小文件的node.js HTTP服务器中的响应慢得多

来自分类Dev

在应用程序中获取带有服务器路径的文件,而不是通过 http?

来自分类Dev

带有TLSv1.2和转发保密性的Python粘贴SSL服务器

来自分类Dev

带有Runat服务器和href中的波浪号的`a`标签

来自分类Dev

关于图形问题和性能在带有GUI的ubuntu 14.04 LTS服务器中

来自分类Dev

具有等待和异步的C#5.0异步TCP / IP服务器

来自分类Dev

无法使用wget和python http服务器下载现有文件

来自分类Dev

带有XML的POST烧瓶服务器(来自python)

来自分类Dev

带有 Angular 前端的 Python API 服务器

来自分类Dev

带有异步服务器调用的ASP.NET AJAX进度指示

来自分类Dev

登录异步Tornado(python)服务器

来自分类Dev

如何在python http服务器中编译和发送结果php代码?

来自分类Dev

如何告诉我的NodeJS服务器在带有两个按钮的HTTP表单中单击了哪个按钮?

来自分类Dev

cron作业功能不使用带有yii框架的php中的http服务器请求

来自分类Dev

即插即用,适用于带有和不带有DHCP服务器的网络

来自分类Dev

有没有办法将mongodb设置为带有vagrantfile的服务器?

来自分类Dev

带有 mongodb 管理器单例的服务器 Swift

来自分类Dev

如何使用 Python(带有 websockets 的服务器)和 JavaScript(客户端)接收 JSON 数据

来自分类Dev

带有XAMPP的SMTP服务器?

来自分类Dev

带有Deno的GraphQL服务器

Related 相关文章

  1. 1

    如何在python中显示/保存从服务器收到的带有http请求的xlsx文件?

  2. 2

    带有NodeJ和boost :: asio组合的异步服务器

  3. 3

    带有阻止请求的Gevent异步服务器

  4. 4

    node.js服务器和带有express.js的HTTP / 2(2.0)

  5. 5

    带有Poco和Boost C ++的多个Http服务器

  6. 6

    在Python中模拟HTTP服务器

  7. 7

    在Python中模拟HTTP服务器

  8. 8

    使用带有 python API 而不是 HTTP 服务器的 Rasa NLU 模型

  9. 9

    HTTP 服务器发送带有响应的新请求

  10. 10

    带有较小文件的node.js HTTP服务器中的响应慢得多

  11. 11

    在应用程序中获取带有服务器路径的文件,而不是通过 http?

  12. 12

    带有TLSv1.2和转发保密性的Python粘贴SSL服务器

  13. 13

    带有Runat服务器和href中的波浪号的`a`标签

  14. 14

    关于图形问题和性能在带有GUI的ubuntu 14.04 LTS服务器中

  15. 15

    具有等待和异步的C#5.0异步TCP / IP服务器

  16. 16

    无法使用wget和python http服务器下载现有文件

  17. 17

    带有XML的POST烧瓶服务器(来自python)

  18. 18

    带有 Angular 前端的 Python API 服务器

  19. 19

    带有异步服务器调用的ASP.NET AJAX进度指示

  20. 20

    登录异步Tornado(python)服务器

  21. 21

    如何在python http服务器中编译和发送结果php代码?

  22. 22

    如何告诉我的NodeJS服务器在带有两个按钮的HTTP表单中单击了哪个按钮?

  23. 23

    cron作业功能不使用带有yii框架的php中的http服务器请求

  24. 24

    即插即用,适用于带有和不带有DHCP服务器的网络

  25. 25

    有没有办法将mongodb设置为带有vagrantfile的服务器?

  26. 26

    带有 mongodb 管理器单例的服务器 Swift

  27. 27

    如何使用 Python(带有 websockets 的服务器)和 JavaScript(客户端)接收 JSON 数据

  28. 28

    带有XAMPP的SMTP服务器?

  29. 29

    带有Deno的GraphQL服务器

热门标签

归档