scrapy处理需要跟进的url

在做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,多个回调函数处理。

posted @ 2018-03-14 10:34  菲菲菲菲菲常新的新手  阅读(1452)  评论(0编辑  收藏  举报