我目前正在使用Scrapy收集数据并使用
输出到json文件scrapy crawl foobar -a category=foo -o bar.json
虽然这会附加到bar.json文件而不是重写它。我想清除文件并重写它,是否可以使用scrapy参数?
或者我是否需要先用scrapy清除它?
非常感谢。
答案 0 :(得分:1)
您可以先删除输出文件,然后使用;
开始抓取新数据rm output_file_name.csv; scrapy crawl spider_name -o output_file_name.csv
答案 1 :(得分:1)
修改脚本如下:
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")
答案 2 :(得分:0)
目前没有针对此问题的自动解决方案,尽管GitHub存在关于此主题的未解决问题。
这意味着您必须在启动抓取之前删除该文件。
一种解决方法是编写一个项目导出器,在初始化时删除输出文件(如果已经存在,则导出项目)。
答案 3 :(得分:0)
除了@GHaijba所说的,另一个解决方案是创建自己的管道,然后你可以对任何文件应用你想要的任何动作。
例如, 您可以检查文件是否存在。然后,您可以清除它或附加日期。
您可以写入不同的文件。
您也可以清除管道中的一些项目,因为在您的蜘蛛中执行此操作不是一个好习惯