import scrapy from movie.items import MovieItem class MeijuSpider(scrapy.Spider): name = "meiju" allowed_domains = ["alexa.cn"] start_urls = ['www.alexa.cn/siterank'] def parse(self, response): movies = response.xpath('//ul[@class="siterank-sitelist"]/li') for each_movie in movies: item = MovieItem() item['name'] =each_movie.xpath('.//p[@class="infos"]').extract()[0] yield item
程式碼是這樣的。我想循環抓取的是:
www.alexa.cn/siterank/2
www.alexa.cn/siterank/3
www.alexa.cn/siterank/4
.....
我看循環應該是這樣的for i in range(2,10):
yield scrapy.Request('www.alexa.cn/siterank/%d'%i),但我不知道怎麼填進去。求助
若你範圍都確定的話,不如從start_urls 下手
官網上有例子,關於追蹤下一頁,官網上面的例子用的是遞歸,官網的代碼如下:
我自己用Scrapy寫了一個貼吧的爬蟲,取得下一頁用的也是這種遞歸的方法,程式碼如下: