请选择 进入手机版|继续访问电脑版
发新帖

Tornado+scrapy(Twisted) 框架结合 0, 支持 newrelic 服务器监控 1, 异步非阻塞 2, ...

[复制链接]
7167 3

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
有谁处理处理过 Tornado+scrapy(Twisted) 框架结合吗?目前在参考( http://www.tornadoweb.org/en/stable/twisted.html#twisted-on-tornado )
主要目标:
        0, 支持 newrelic 服务器监控
        1, 异步非阻塞
        2,realtime 实时响应(不经过任何数据库存储)
选择 Tornado 是因为支持 newrelic,这是主要原因,还有异步
Twisted 也是异步非阻塞。

以下方案我也参考过
scrapyDO, 已经被改造成阻塞(如 flask+scrapy 都是如此)
scrapyrt(modify)( https://github.com/haijunt/scrapyrt), 支持 realtime,不支持 newrelic
arachnado ( https://github.com/TeamHG-Memex/arachnado)

其他
pyspider 正在考虑研究。

举报 使用道具

回复

精彩评论3

forgettb  注册会员  发表于 2018-5-16 18:20:19 | 显示全部楼层
或者说能够使用 tornado.platform.twisted
具体是在 Tornado 框架下
import tornado.platform.twisted
tornado.platform.twisted.install()
from twisted.internet import reactor

调用 Scrapy 启动爬虫(EvenvLoop 事件循环的代码)
        dfd = process.crawl(QuotesSpider)
        #  process.start() # the script will block here until the crawling is finished       d.addBoth(lambda _: reactor.stop())
        result = dfd.addCallback(self.result_items)
并且直接拿到爬取数据。

参考链接如下:
https://stackoverflow.com/questions/36384286/how-to-integrate-flask-scrapy
http://www.tornadoweb.org/en/stable/twisted.html#twisted-on-tornado
https://doc.scrapy.org/en/latest/topics/practices.html

举报 使用道具

回复
crb912  新手上路  发表于 2018-5-16 19:13:23 | 显示全部楼层
原理是:Twisted 建立连接和请求,scrapy 分析数据,tornado 显示?

举报 使用道具

回复
golmic  新手上路  发表于 2018-5-16 19:43:45 | 显示全部楼层
不知道目的是什么。我的做法是解耦,scrapy 只管并发抓取的事

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表