我不想抓取如果与scrapy框架之前的抓取数据相同。
为了解决这个问题,我认为在抓取完成后,将日期时间放在数据库中,如果自该日期时间以来尚未更新Last-Modified响应HTTP,则不要抓取。
我的问题是以下两个。
感谢您阅读我的问题。
答案 0 :(得分:1)
并非所有网站都会返回Last-Modified
标题,如果您确定,您可以先尝试HEAD
请求检查标题并与您的数据库信息匹配,然后GET
1}}请求抓取数据:
def parse(self, response):
urls = [] # some urls
for url in urls:
yield Request(url, method='HEAD', self.check)
def check(self, response):
date = response.headers['Last-Modified']
#check date to your db
if db_date > date: # or whatever is your case
yield Request(response.url, self.success)
def success(self, response):
yield item