关于 scrapy 处理批量 url

2018-05-03 19:56:45 +08:00
 akmonde

RT,我这边有需求处理一批 URL 入口,其中可能会定制传入相应的参数,形式大概类似于:

execute(['scrapy', 'crawl', 'woshiscrapy', '-a', 'para=%s' % para)       

试过多进程和多线程,完全不适配,似乎异步 twisted 好像需要其他法子解决速度问题。

本来放弃速度,准备直接 for 循环传入,结果发现调用 execute 执行 scrapy,爬完了第一个 url,就直接退出了主程序。

很无奈,求各位大佬给点具体的方案建议,小弟有点没招了。

3381 次点击
所在节点    Python
4 条回复
Leigg
2018-05-03 20:41:58 +08:00
参数得有规律才行,用多进程可以的。
arithboy
2018-05-03 22:42:35 +08:00
你把 url 和相应的参数拼成一个 url 列表,然后赋值到 self.start_urls 变量里面跑
要多进程的话,把 url 放到队列里面,然后启动多个 scrapy 从队列中取
lins05
2018-05-03 23:28:25 +08:00
可以用 scrapyrt, 把 scrapy project 变成一个 http service, 然后调用 http api
Mitt
2018-05-04 02:04:50 +08:00
可以了解一下 scrapy_redis 然后重写 make_requests_from_data 来实现自定义参数传入

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/451857

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX