【问题标题】:Can i execute scrapy(python) crawl outside the project dir?我可以在项目目录之外执行scrapy(python) crawl吗?
【发布时间】:2012-03-20 18:20:42
【问题描述】:

文档说我只能在项目目录中执行 crawl 命令:

scrapy crawl tutor -o items.json -t json

但我确实需要在我的 python 代码中执行它(python 文件不在当前项目目录中)

有什么方法适合我的要求吗?

我的项目树:

.
├── etao
│   ├── etao
│   │   ├── __init__.py
│   │   ├── items.py
│   │   ├── pipelines.py
│   │   ├── settings.py
│   │   └── spiders
│   │       ├── __init__.py
│   │       ├── etao_spider.py
│   ├── items.json
│   ├── scrapy.cfg
│   └── start.py
└── start.py    <-------------- I want to execute the script here.

这里有我的代码遵循link,但它不起作用:

#!/usr/bin/env python
import os
#Must be at the top before other imports
os.environ.setdefault('SCRAPY_SETTINGS_MODULE', 'project.settings')

from scrapy import project
from scrapy.conf import settings
from scrapy.crawler import CrawlerProcess

class CrawlerScript():

  def __init__(self):
    self.crawler = CrawlerProcess(settings)
    if not hasattr(project, 'crawler'):
      self.crawler.install()
    self.crawler.configure()

  def crawl(self, spider_name):
    spider = self.crawler.spiders.create(spider_name)   <--- line 19
    if spider:
      self.crawler.queue.append_spider(spider)
    self.crawler.start()
    self.crawler.stop()


# main
if __name__ == '__main__':
  crawler = CrawlerScript()
  crawler.crawl('etao')

错误是:

line 19: KeyError: 'Spider not found: etao'

【问题讨论】:

    标签: python python-2.7 scrapy web-crawler


    【解决方案1】:

    您实际上可以自己拨打crawlprocess...

    有点像

    from scrapy.crawler import CrawlerProcess
    from scrapy.conf import settings
    
    
    settings.overrides.update({}) # your settings
    
    crawlerProcess = CrawlerProcess(settings)
    crawlerProcess.install()
    crawlerProcess.configure()
    
    crawlerProcess.crawl(spider) # your spider here
    

    感谢@warwaruk。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      • 1970-01-01
      相关资源
      最近更新 更多