Scrapy:从python脚本运行一个蜘蛛并等待它直到执行结束
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scrapy:从python脚本运行一个蜘蛛并等待它直到执行结束相关的知识,希望对你有一定的参考价值。
我用这种结构创建了一个小的Scrapy
项目:
scrapyProject/
├── scrapy.cfg
└── scrapyProject
├── __init__.py
├── items.py
├── pipelines.py
├── settings.py
└── spiders
├── crawl_products.py
└── __init__.py
crawl_products.py
包含蜘蛛products_spider
。要启动我正在使用的蜘蛛:
scrapy crawl products_spider
现在我想从另一个python脚本启动蜘蛛并等到它的执行结束。
如果它可以帮助:我想要运行蜘蛛的另一个脚本是django
视图
答案
你可以在scrapy docs的这个非常好的解释中找到一半的解决方案
但是,这是解决方案中更重要的一半,从来没有直接从django视图(也不是来自其他一些Web框架)运行刮刀。
拜托,我经常看到这种方式,这样做会阻止你的网络应用。因此,您的视图将遇到浏览器超时,并且在某些时候您的应用将无法处理其他请求。
这里干净的解决方案是使用运行刮刀的后台进程。一个很好的库是celery
,这个主题已经在这里详细讨论过了:Running Scrapy spiders in a Celery task
以上是关于Scrapy:从python脚本运行一个蜘蛛并等待它直到执行结束的主要内容,如果未能解决你的问题,请参考以下文章