【发布时间】:2017-01-30 21:19:33
【问题描述】:
我正在构建一个刮板来使用 scrapy 刮取不同的链接。 Scrapy 不断地从初始页面抓取链接。尽管GET 请求的 url 不同,但 response.url 始终相同,这会导致相同的页面被抓取。我认为没有任何类型的重定向,因为链接不会在普通浏览器中重定向。我还设置了一个随机的 DELAY_INTERVAL 以及使用 this 旋转用户代理。这是我的解析函数:
def parse(self,response):
scraped_data = response.xpath("*//h3/a/@href").extract()
if self.urls is not None: #urls has all the different links to be crawled.
yield scrapy.Request(urls[self.k],callback=self.parse,dont_filter=True)
self.k = self.k + 1
else:
yield self.logger.info("next page unavailable|LIMIT REACHED")
如何克服这种重复的抓取?
【问题讨论】:
-
您能否提供更多蜘蛛代码和一些日志(使用 LOG_LEVEL='DEBUG')显示重复的 URL 被获取?此外,您可以在
yield scrapy.Request之前添加一个self.logger.debug(urls[self.k])语句,以确保您实际上正在排队您打算的请求。
标签: web-scraping scrapy scrapy-spider