在没有活动项目的情况下使用 Scrapy 抓取本地文件?
Crawling local files with Scrapy without an active project?
是否可以在没有活动项目的情况下使用Scrapy 0.18.4 爬取本地文件?我看过 this 答案,看起来很有希望,但要使用 crawl
命令,您需要一个项目。
或者,是否有 easy/minimalist 为现有蜘蛛设置项目的方法?我在一个 Python 文件中定义了蜘蛛、管道、中间件和项目。我创建了一个只有项目名称的 scrapy.cfg 文件。这让我可以使用 crawl
,但是因为我没有蜘蛛文件夹,所以 Scrapy 找不到我的蜘蛛。我可以将 Scrapy 指向正确的目录,还是需要将我的项目、蜘蛛等拆分成单独的文件?
[edit] 我忘了说我正在 运行 使用 Crawler.crawl(my_spider)
安装蜘蛛 - 理想情况下我仍然希望能够 运行 这样的蜘蛛, 但如果不可能的话,可以 运行 它在我的脚本的子进程中。
事实证明,我链接的答案中的建议确实有效 - http://localhost:8000 可以用作 start_url,因此不需要项目。
作为一个选项,您可以 运行 从脚本中提取 ,这里是 self-contained example script and the overview 使用的方法。
这并不意味着您必须将所有内容都放在一个文件中。您仍然可以使用 spider.py
、items.py
、pipelines.py
- 只需将它们正确导入您开始抓取的脚本即可。
是否可以在没有活动项目的情况下使用Scrapy 0.18.4 爬取本地文件?我看过 this 答案,看起来很有希望,但要使用 crawl
命令,您需要一个项目。
或者,是否有 easy/minimalist 为现有蜘蛛设置项目的方法?我在一个 Python 文件中定义了蜘蛛、管道、中间件和项目。我创建了一个只有项目名称的 scrapy.cfg 文件。这让我可以使用 crawl
,但是因为我没有蜘蛛文件夹,所以 Scrapy 找不到我的蜘蛛。我可以将 Scrapy 指向正确的目录,还是需要将我的项目、蜘蛛等拆分成单独的文件?
[edit] 我忘了说我正在 运行 使用 Crawler.crawl(my_spider)
安装蜘蛛 - 理想情况下我仍然希望能够 运行 这样的蜘蛛, 但如果不可能的话,可以 运行 它在我的脚本的子进程中。
事实证明,我链接的答案中的建议确实有效 - http://localhost:8000 可以用作 start_url,因此不需要项目。
作为一个选项,您可以 运行 从脚本中提取 ,这里是 self-contained example script and the overview 使用的方法。
这并不意味着您必须将所有内容都放在一个文件中。您仍然可以使用 spider.py
、items.py
、pipelines.py
- 只需将它们正确导入您开始抓取的脚本即可。