python爬虫

for each in response.json['顶层名称']【中间根据json层数决定】[‘数据层名称’]

例如:json格式

{"code":1,

"msg":"操作成功",

"data":

    {"pageNo":1,

    "hasNext":true,

    "list":    [{"docid":"DRQQ35F90511ELD5","boardid":"dy_wemedia_bbs","postid":null,"topicid":null,"recommendtids":null,"userid":null,"nickname":null,"userinfo":null,"title":"海湾被鲜血染成血红色:100多只海豚和鲸鱼惨遭法罗群岛渔民斩杀",}]

                }

}

代码:


for each in response.json['data']['list']

pyspider传参数
我这边没有利用save传参数

def on_start(self):
    self.crawl('http://www.example.org/',
    callback=self.callback, save={'a': 123})

def callback(self, response):
    return response.save['a']

直接利用上一步爬取的参数,然后回调参数获取

    def index_page(self, response):
        for each in response.json['data']['list']:
            docid=each['docid']
            title=each['title']
            imgsrc=each['imgsrc']
            self.crawl('http://www.***.com/***',callback=self.detail_page)

    @config(priority=2)
    def detail_page(self, response):
        imgsrc=response.save['imgsrc']
        content=response.doc('#content').html()
        return {
            "content":content,
            "title": response.doc('h2').text(),
            "imgsrc":imgsrc
        }

这样就可以利用上一步的参数了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • pyspider是个蛮简洁的框架,爬取内容直接存放在resultdb里,可以web查看,超级方便实用。 废话少说,...
    学而不厌888阅读 1,218评论 0 1
  • Ps:惯例ps环节,经过前面几章的学习,写一些简单的爬虫已经是手到擒来了吧。这章我们看看如何使用pyspider框...
    Darkeril阅读 14,627评论 8 26
  • 本文主要介绍并使用在爬虫工作中经常使用的一些工具 爬虫是什么 关于爬虫是什么,我们可以直接看百度百科的介绍,不多做...
    听云_阅读 2,507评论 0 0
  • 基础知识 HTTP协议 我们浏览网页的浏览器和手机应用客户端与服务器通信几乎都是基于HTTP协议,而爬虫可以看作是...
    腩啵兔子阅读 1,522评论 0 17
  • 最近在外婆家工作,虽然累的要死,但个人觉得有几点让我颇开心:店里为了显示特色,所以装修都是暗色调,夏天也几乎...
    简彤阅读 266评论 0 0