Scrapy python json 输出,写入前清除文件
Scrapy python json output, clear file before writing
我目前正在使用 Scrapy 收集数据并输出到 json 文件
scrapy crawl foobar -a category=foo -o bar.json
虽然这将附加到 bar.json 文件而不是重写它。我想清除文件并重写它,是否可以使用 scrapy 参数?
或者我需要先用 scrapy 清除它吗?
非常感谢。
目前没有针对此问题的自动解决方案,尽管 GitHub 中存在关于此主题的未解决问题。
这意味着您必须在启动抓取之前删除该文件。
一个解决方法是编写一个项目导出器,它在初始化时删除输出文件(如果您已经存在,则导出项目)。
除了@GHaijba 所说的之外,另一种解决方案是创建您自己的管道,然后您可以对任何文件应用任何您想要的操作。
例如,
您可以检查该文件是否存在。然后,您可以将其清除或附加日期。
您可以写入不同的文件。
您也可以清除管道中的一些项目,因为在您的蜘蛛中这样做不是一个好习惯
您可以先删除输出文件,然后使用;
开始抓取新数据
rm output_file_name.csv;爬行 spider_name -o output_file_name.csv
修改脚本如下:
class MySpider(Spider):
"""
Main crawler
"""
name = "mucrawler"
allowed_domains = ["sss.com"]
start_urls = ["https://www.sdsd/rov/"]
"Empty output file"
f = open("bar.json", 'w').close()
def parse(self, response):
titles = response.css("td.offer")
覆盖提要已于 2020 年 8 月 17 日添加到 scrapy PR #4512。您可以使用 -O
标志进行覆盖,最终命令将如下所示:
scrapy crawl foobar -a category=foo -O bar.json
您还可以添加行 open(LOG_FILE, "w+").close()
,其中 LOG_FILE
是您 settings.py
中的日志文件的名称。这将打开、清除和关闭它。
我目前正在使用 Scrapy 收集数据并输出到 json 文件
scrapy crawl foobar -a category=foo -o bar.json
虽然这将附加到 bar.json 文件而不是重写它。我想清除文件并重写它,是否可以使用 scrapy 参数?
或者我需要先用 scrapy 清除它吗?
非常感谢。
目前没有针对此问题的自动解决方案,尽管 GitHub 中存在关于此主题的未解决问题。
这意味着您必须在启动抓取之前删除该文件。
一个解决方法是编写一个项目导出器,它在初始化时删除输出文件(如果您已经存在,则导出项目)。
除了@GHaijba 所说的之外,另一种解决方案是创建您自己的管道,然后您可以对任何文件应用任何您想要的操作。
例如, 您可以检查该文件是否存在。然后,您可以将其清除或附加日期。
您可以写入不同的文件。
您也可以清除管道中的一些项目,因为在您的蜘蛛中这样做不是一个好习惯
您可以先删除输出文件,然后使用;
开始抓取新数据rm output_file_name.csv;爬行 spider_name -o output_file_name.csv
修改脚本如下:
class MySpider(Spider):
"""
Main crawler
"""
name = "mucrawler"
allowed_domains = ["sss.com"]
start_urls = ["https://www.sdsd/rov/"]
"Empty output file"
f = open("bar.json", 'w').close()
def parse(self, response):
titles = response.css("td.offer")
覆盖提要已于 2020 年 8 月 17 日添加到 scrapy PR #4512。您可以使用 -O
标志进行覆盖,最终命令将如下所示:
scrapy crawl foobar -a category=foo -O bar.json
您还可以添加行 open(LOG_FILE, "w+").close()
,其中 LOG_FILE
是您 settings.py
中的日志文件的名称。这将打开、清除和关闭它。