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
Le code est comme ça. Ce que je veux capturer en boucle, c'est :
www.alexa.cn/siterank/2
www.alexa.cn/siterank/3
www.alexa.cn/siterank/4
.....
Je pense que la boucle devrait être comme ceci pour i in range(2,10):
yield scrapy.Request('www.alexa.cn/siterank/%d'%i), mais je ne sais pas comment remplir dans. Aide
Si vous êtes sûr de la portée, il est préférable de commencer par start_urls
Il y a des exemples sur le site officiel. Concernant le suivi de la page suivante, les exemples sur le site officiel utilisent la récursion. Le code sur le site officiel est le suivant :
J'ai utilisé Scrapy pour écrire un robot Tieba. J'ai également utilisé cette méthode récursive pour obtenir la page suivante :