簡體   English   中英

Scrapy 來自另一個腳本

[英]Scrapy from another script

我正在編寫一個需要來自 Internet 的數據的 python 程序。 所以我寫了一些 Scrapy 蜘蛛,它們在幾個頁面上運行並抓取數據。 之后,他們將數據存儲在我的數據庫中的 Excel 文件中。 為此,我編寫了自己的 class,它按照我需要的方式處理 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()

我也不想將設置文件中的所有設置重寫為 dict 並像這樣手動實現它:

   process = CrawlerProcess(settings={
"FEEDS": {
    "items.json": {"format": "json"},
},
})

最后一個代碼只是 Scrapy 文檔中的一個示例,顯然我不需要導出器。 我已經嘗試只導入我需要的設置文件並將其設置為設置參數,但參數設置需要 python 字典類型。

   process = CrawlerProcess(settings={})

我真的希望有人可以幫助我解釋如何解決問題。

在您的項目中添加一個新文件(example.py)

import os
while True:
    os.system('scrapy crawl verbos')

然后

python example.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM