我正在编写一个python程序,该程序需要来自互联网的数据。因此,我写了一些Scrapy蜘蛛,这些蜘蛛会在几页上抓取数据。之后,他们将数据存储在类似于我的数据库的Excel文件中。为此,我编写了一个自己的类,该类按照我需要的方式处理excel文件中的数据。这样行得通。现在我的问题:
我希望蜘蛛从另一个python脚本开始。我发现一些代码可以做到这一点。但是我还需要从Scrapy项目以及管道,项目等中导入所有设置。我不能使用
get_project_settings()
因为该脚本位于另一个目录中(Scrapy项目文件夹与我希望其启动的脚本位于同一目录中): 那就是我到目前为止所得到的:
from scrapy.crawler import CrawlerProcess
from desktop.Project.bots.question.spider import spider_test
process = CrawlerProcess(settings={'Here I need to import the settings file from the spiders Project' })
process.crawl(spider_test)
process.start()
蜘蛛运行,但我需要设置。当我将该脚本放置在与设置相同的项目文件夹中并使用以下代码时,它将完全正常工作:
from scrapy.crawler import CrawlerProcess
from desktop.question.spider import spider_test
process = CrawlerProcess(get_project_settings())
process.crawl(spider_test)
process.start()
我也不想将设置文件中的所有设置都重写为字典,并像这样手动实现它:
process = CrawlerProcess(settings={
"FEEDS": {
"items.json": {"format": "json"},
},
})
最后一个代码只是Scrapy文档中的一个示例,显然我不需要Exporter。 我已经尝试过导入所需的设置文件并将其设置为settings参数,但是参数设置需要python字典类型。
process = CrawlerProcess(settings={})
我真的希望有人能为我提供一些解决方法的解释。
答案 0 :(得分:0)
在您的项目中添加一个新文件(example.py)
import os
while True:
os.system('scrapy crawl verbos')
然后
python example.py