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 多個鏈接。
添加回答
舉報