在做scrapy爬虫的时候经常会遇到需要跟进url的情况,网站a有许多url,但是我们需要跟进这些url,进一步获取这些url中的详细内容。
简单的说就是要先解析出所有需要的url,然后跟进这些url
那么现在来说说怎么做
scrapy中有个Request专门处理跟进的url
from scrapy.http import Request
在处理函数parse中进行跟进
def parse(self, response): hxs = Selector(response) urls = hxs.xpath('//div[@class="li-info"]//h3//a/@href').extract() for url in urls: yield Request(url, callback=self.get_community)
callback中的函数才是重点,对跟进的url再次发送请求,
def get_community(self, response): hxs = Selector(response) item = CommunityItem() yield item
这个函数用来进行对跟进的url进行解析,以便得到我们想要的数据
这里只是跟进了一次url,如果需要跟进多次url,可以多次使用Request,多个回调函数处理。