因此,我刮一些真实的地产价格,但我只想在某个日期之前的数据,比如说2010年,这意味着我需要遵循下一页只到某一页。我怎么去实现这一点?
我可以得到的网页,我想跟随链接停止,手动,但显然我想避免这种情况。
我们能不能用某种方式利用被抓取的条目数?例如,在这个网站(如下所示)中,我每页只抓取10个条目。假设我只想抓取到第14页的数据(包括第14页,但不包括第15页),那么应该有14 x 10 = 140个条目被抓取。那么我能告诉scrapy在条目数为140时停止吗?
import scrapy
class PropertySpider(scrapy.Spider):
name = 'property'
start_urls = ['http://house.speakingsame.com/p.php?q=Fortitude+Valley&p=0&s=1&st=&type=House&count=288®ion=Fortitude+Valley&lat=0&lng=0&sta=qld&htype=&agent=0&minprice=0&maxprice=0&minbed=0&maxbed=0&minland=0&maxland=0'
]
def parse(self, response):
# my code here
next_page = response.xpath("/html/body/center/table").xpath(".//tr").xpath(".//td")[-1].css('a').attrib[
'href']
if next_page is not None:
yield response.follow(next_page, callback=self.parse)
1条答案
按热度按时间oyjwcjzk1#
Scrapy提供了Close蜘蛛扩展。
类scrapy.扩展.关闭蜘蛛.关闭蜘蛛
在满足某些条件时自动关闭蜘蛛,并对每个条件使用特定的关闭原因。
通过启用扩展,您可以访问几个设置,这些设置可以用于在某个时候停止蜘蛛,包括
CLOSESPIDER_ITEMCOUNT
,它将完全按照您的要求执行。在您的settings.py文件中
Scrapy CloseSpider文档