Mar*_*oli 13 python scrapy python-2.7
我想从脚本而不是脚本中运行我的蜘蛛 scrap crawl
我找到了这个页面
http://doc.scrapy.org/en/latest/topics/practices.html
但实际上并没有说该放哪个脚本.
有什么帮助吗?
Alm*_*hen 27
它简单明了:)
只需查看官方文档即可.我会在那里进行一些改动,这样你就可以控制蜘蛛只在你做的时候运行python myscript.py
而不是每次只是从它进口.只需添加一个if __name__ == "__main__"
:
import scrapy
from scrapy.crawler import CrawlerProcess
class MySpider(scrapy.Spider):
# Your spider definition
pass
if __name__ == "__main__":
process = CrawlerProcess({
'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'
})
process.crawl(MySpider)
process.start() # the script will block here until the crawling is finished
Run Code Online (Sandbox Code Playgroud)
现在保存文件myscript.py
并运行'python myscript.py`.
请享用!
你为什么不这样做呢?
from scrapy import cmdline
cmdline.execute("scrapy crawl myspider".split())
Run Code Online (Sandbox Code Playgroud)
将该脚本放在您放置的同一路径中scrapy.cfg
幸运的是scrapy源是开放的,所以你可以按照crawl命令的方式工作,并在你的代码中执行相同的操作:
...
crawler = self.crawler_process.create_crawler()
spider = crawler.spiders.create(spname, **opts.spargs)
crawler.crawl(spider)
self.crawler_process.start()
Run Code Online (Sandbox Code Playgroud)