【发布时间】:2021-08-31 20:02:41
【问题描述】:
既然我们使用自己的终端命令运行 scrapy spiders,我该如何运行自己定义的函数?
下面的例子:
import scrapy
class Fcc(scrapy.Spider):
name = "fcc"
start_urls = ["http://freecodecamp.org/"]
def parse(self, response):
for link in response.css("a::attr(href)").getall():
yield {
"url": link,
}
def add(self):
with open("links.txt", "a") as f:
f.write(next(self.parse()))
所以现在如果我通过传递以下命令从终端运行蜘蛛,它只会执行 parse 函数。那么如何在需要的时候运行 add 函数呢?
scrapy runspider fcc_spider.py
因为这将帮助我处理从任何网站抓取的数据。
附言。这只是一个例子,请不要只针对这段代码给出具体的解决方案,给出在任何情况下都可以使用的解决方案。
【问题讨论】:
-
在普通的 Python 程序中,您将传递命令行参数并使用
sys.argv来读取它们。我不知道scrapy是否将命令行传递给脚本,但值得检查。
标签: python scrapy web-crawler