pyspider示例代码:解析JSON数据
Posted 一个永
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pyspider示例代码:解析JSON数据相关的知识,希望对你有一定的参考价值。
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\'] }
本文摘自:https://www.cnblogs.com/shiluoliming/p/8394983.html
以上是关于pyspider示例代码:解析JSON数据的主要内容,如果未能解决你的问题,请参考以下文章
pyspider示例代码七:自动登陆并获得PDF文件下载地址
jQuery解析JSON出现SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data(示例代码