[英]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上引用的版本進行測試:
嘗試使用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.