Skip to main content

Scrapy Spider分享

Scrapy Spider分享

代码片段如下:

class MySpider(BaseSpider):
    name = 'myspider'
    start_urls = (
        'http://example.com/page1',
        'http://example.com/page2',
        )
    def parse(self, response):
        # collect `item_urls`
        for item_url in item_urls:
            yield Request(url=item_url, callback=self.parse_item)
    def parse_item(self, response):
        item = MyItem()
        # populate `item` fields
        yield Request(url=item_details_url, meta={'item': item},
            callback=self.parse_details)
    def parse_details(self, response):
        item = response.meta['item']
        # populate more `item` fields
        return item

举个比较是利用的例子,比如这个sipider想要获取微博用户的基本信息和他是否加V的话,那么地址肯定是不一个地址,于是,可以通过这种方式,先获取到基本信息然后将结果通过meta传递给下一个parse,然后下一个parse就可以将上一个parse的结果一起通过item返回了。

版权声明

版权声明

durban.zhang 创作并维护的 Walkerfree 博客采用 创作共用保留署名-非商业-禁止演绎4.0国际许可证。本文首发于 Walkerfree 博客(http://www.walkerfree.com/),版权所有,侵权必究。本文永久链接:http://www.walkerfree.com/article/16