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']
            }
    记录自己、分享公众、成就别人
  • 相关阅读:
    建表
    第5讲:控制语句
    第4讲:函数
    第1讲:面向对象
    野路子小白安装黑苹果 OpenCore引导 @a.宏万
    野路子学习esp32(十九)ESP32-Arduino 第二篇 智能孵化器 @a.宏万
    野路子学习esp32(十八)ESP32-Arduino 第一篇 @a.宏万
    野路子学习esp32(十七)ESP32-MicroPython OLED AND DHT11 @a.宏万
    野路子学习esp32(十六) MQTT与ESP32-MicroPython @a.宏万
    野路子学习esp32(十五) 1z实验室 EMP项目@a.宏万
  • 原文地址:https://www.cnblogs.com/microman/p/6110388.html
Copyright © 2011-2022 走看看