您可以在Python脚本中直接运行爬虫,而不需要使用项目。
您必须使用scrapy.crawler.CrawlerProcess
或scrapy.crawler.CrawlerRunner
,但我不确定它是否具有与项目中相同的所有功能。
更多信息请参见文档:常见实践
或者您可以将命令放在Linux中的bash脚本或Windows的.bat
文件中。
顺便说一下,在Linux上,您可以在第一行添加shebang(#!/bin/bash
)并设置属性“executable”-即chmod +x your_script
-它将像普通程序一样运行。
工作示例
#!/usr/bin/env python3
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
allowed_domains = ['http://quotes.toqoute.com']
#start_urls = []
#def start_requests(self):
# for tag in self.tags:
# for page in range(self.pages):
# url = self.url_template.format(tag, page)
# yield scrapy.Request(url)
def parse(self, response):
print('url:', response.url)
# --- it runs without project and saves in `output.csv` ---
from scrapy.crawler import CrawlerProcess
c = CrawlerProcess({
'USER_AGENT': 'Mozilla/5.0',
'FEED_FORMAT': 'csv',
'FEED_URI': 'output.csv',
})
c.crawl(MySpider)
c.start()
Python中的OS模块提供了与操作系统交互的函数。
它在这里可能会有用:
import os
os.system('scrapy crawl book -o book.json')
一个 shell 脚本可以吗?例如:
#!/usr/bin/bash
scrapy crawl book -o book.json