Scrapy Spider分享

代码片段如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
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返回了。

Licensed under CC BY-NC-SA 4.0
最后更新于 Jul 21, 2025 18:16 +0800