1 回答
TA贡献1811条经验 获得超6个赞
可以通过覆盖start_requests方法在页面上进行迭代。为了达到这个目的,你需要编写一个循环来请求所有(在本例中为219xxx)页面并提取第二层页面href。
def start_requests(self):
pages_count = 1 # in this method you need to hard code your pages quantity
for i in range(pages_count)
url = 'https://www.subito.it/annunci-italia/vendita/usato/?o=%s' % str(i + 1)
scrapy.Request(url, callback=self.parse)
或者以更好的方式 slso 找出第一层中有多少页,该层始终位于最后一个class="unselected-page"元素中,以便您可以使用 找到它response.xpath('//*[@class="unselected-page"]//text()').getall()[-1] 。在这种情况下,您需要在第一种parse方法中发出对第一层页面的请求。
def start_requests(self):
base_url = 'https://www.subito.it/annunci-italia/vendita/usato'
scrapy.Request(base_url, callback=self.parse_first_layer)
def parse_first_layer(self, response):
pages_count = int(response.xpath('//*[@class="unselected-page"]//text()').getall()[-1])
for i in range(pages_count)
url = 'https://www.subito.it/annunci-italia/vendita/usato/?o=%s' % str(i + 1)
scrapy.Request(url, callback=self.parse_second_layer)
到达第一层链接后,您可以像以前一样在每个页面中迭代 50 多个链接。
添加回答
举报