簡體   English   中英

如何使用py文件運行scrapy

[英]How to run a scrapy with a py file

嗨,我正在研究scrapy,我用scrapy startproject example創建了一個scrapy文件夾,並編寫了蜘蛛來從url中抓取所有數據,我使用命令scrapy crawl spider_name運行蜘蛛,它工作正常並且能夠獲取數據。

但我有一個要求,我需要運行scrapy與一個蜘蛛文件創建我的意思是一個py文件之類的東西

python -u /path/to/spider_file_inside_scrapy_folder_created.py

在使用spider.py文件創建scrapy項目文件夾后,是否可以在沒有scrapy crawl命令的情況下運行spider

是! 如果您想以編程方式執行此操作而不是通過Popen調用該命令,則可以按如下方式運行它:

>>> from scrapy.cmdline import execute
>>> execute(['scrapy','crawl','dmoz'])

如果您有任何問題,請告訴我。 我使用scrapy docs在Github上引用的版本進行測試:

https://github.com/scrapy/dirbot

嘗試使用runspider命令:

scrapy runspider /path/to/spider_file_inside_scrapy_folder_created.py

我認為答案(如果我理解你的問題)現在使用API

import scrapy
from scrapy.crawler import CrawlerProcess

class MySpider(scrapy.Spider):
    # Your spider definition
    ...

process = CrawlerProcess({
    'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'
})

process.crawl(MySpider)
process.start()

你的蜘蛛類文件:

class YouNameSpider(scrapy.Spider):
    name = 'youname'
    allowed_domains = ['https://www.YouName.com']

在YouName中創建main.py:

from scrapy.cmdline import execute
import os, sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
execute(['scrapy', 'crawl', 'youname'])

是的,您可以通過命令提示符首先到達xyz.py文件所在的目標位置。 然后你可以寫命令:

scrapy runspider xyz.py

如果要保存輸出,可以寫:

scrapy runspider xyz.py -o output.csv

或者您也可以將輸出保存在json中

暫無
暫無

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

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