簡體   English   中英

從單獨的腳本運行 Scrapy -o JSON

[英]Run Scrapy -o JSON From Separate Script

我有一個 python3 腳本,在其中我在代碼中的某個位置調用 2 個 scrapy 蜘蛛到 output 一個 JSON 文件。 目前,我正在通過運行 bat 腳本來執行此操作,如下所示:

subprocess.call(["scrapy.bat"])

蝙蝠腳本:

cd C:\Python\crawler\crawler\spiders
scrapy crawl project1 -o project1.json
scrapy crawl project2 -o project2.json

我想知道是否可以在不使用 bat 腳本的情況下在 python 腳本中執行完全相同的操作。

是的,可以從單獨的 python 腳本運行蜘蛛:

在我的 python 文件中,我可以導入蜘蛛並使用CrawlerProcess運行它

示例:假設我的RedditSpider在另一個名為test_reddit.py的 Python 文件中,該文件與我的 python 腳本位於同一目錄中。 我只需要添加下面的代碼來運行蜘蛛:

from scrapy.crawler import CrawlerProcess

from test_reddit import RedditSpider

if __name__ == "__main__":
    c = CrawlerProcess({
        'USER_AGENT': 'Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
        'FEED_FORMAT': 'json',
        'FEED_URI': 'results.json'
    })
    c.crawl(RedditSpider)
    c.start()

在 Scrapy 的文檔中有一些關於此的信息: https://docs.scrapy.org/en/latest/topics/practices.html#run-scrapy-from-a-script

暫無
暫無

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

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