zoukankan      html  css  js  c++  java
  • pyspider示例代码二:解析JSON数据

    本系列文章主要记录和讲解pyspider的示例代码,希望能抛砖引玉。pyspider示例代码官方网站是http://demo.pyspider.org/。上面的示例代码太多,无从下手。因此本人找出一下比较经典的示例进行简单讲解,希望对新手有一些帮助。

    示例说明:

    pyspider爬取的内容通过回调的参数response返回,response有多种解析方式。
    1、response.json用于解析json数据
    2、response.doc返回的是PyQuery对象
    3、response.etree返回的是lxml对象
    4、response.text返回的是unicode文本
    5、response.content返回的是字节码
    本示例主要是利用response.json解析返回的json数据。其他返回类型示例见后续文章。

    使用方法:

    示例代码:

    #!/usr/bin/env python
    # -*- encoding: utf-8 -*-
    # Created on 2016-06-21 13:57:13
    # Project: duitang
    
    from pyspider.libs.base_handler import *
    
    
    class Handler(BaseHandler):
        crawl_config = {
        }
    
        @every(minutes=24 * 60)
        def on_start(self):
            self.crawl('http://www.duitang.com/napi/friendship/fans/?start=0&limit=1000&user_id=116965', callback=self.index_page)
    
        @config(age=10 * 24 * 60 * 60)
        def index_page(self, response):
            for each in  response.json['data']['object_list']:
                id = each['id']
                self.crawl('http://www.duitang.com/napi/friendship/fans/?start=0&limit=1000&user_id='+str(id), callback=self.index_page)
                self.crawl('http://www.duitang.com/napi/people/profile/?user_id='+str(id), callback=self.detail_page)
            start = response.json['data']['next_start'] 
            total = response.json['data']['total']
            user = response.json['data']['visit_user']['user_id']
            if start < total:
                self.crawl('http://www.duitang.com/napi/friendship/fans/?start='+str(start)+'&limit=1000&user_id='+str(user),callback=self.index_page)
    
        
        @config(priority=2)
        def detail_page(self, response):
            return {
                "username": response.json['data']['username'],
                 "id": response.json['data']['id']
            }
    记录自己、分享公众、成就别人
  • 相关阅读:
    pgspider sqlite mysql docker 镜像
    pgspider docker 镜像
    pgspider基于pg 的高性能数据可视化sql 集群引擎
    diesel rust orm 框架试用
    golang 条件编译
    Performance Profiling Zeebe
    bazel 学习一 简单java 项目运行
    一个好用node http keeplive agnet
    gox 简单灵活的golang 跨平台编译工具
    mailhog 作为smtp server mock工具
  • 原文地址:https://www.cnblogs.com/microman/p/6110388.html
Copyright © 2011-2022 走看看