当前位置: 首页 > news >正文

【pyspider】爬取ajax请求数据(post),如何处理python2字典的unicode编码字段?

情景:传统的爬虫只需要设置fetch_type=js即可,因为可以获取到整个页面。但是现在ajax应用越来越广泛,所以有的网页不能用此种爬虫类型来获取页面的数据,只能用slef.crawl()来发起http请求来抓取数据。

直接上例子:
可以看到,该网页的每一页的数据是通过ajax请求获取到的,方式为POST,所以不能用传统方法。
在这里插入图片描述

可以看到该请求的请求体,我们需要把请求体和请求方法写到crawl函数的参数里。
在这里插入图片描述

直接上代码:

# coding: utf-8
from pyspider.libs.base_handler import *class Handler(BaseHandler):@every(minutes=10)def on_start(self):data = {'channelid': 229105,'sortfield': '-docorderpri,-docreltime','classsql': 'chnlid=40078','classcol': 'publishyear','classnum': 100,'classsort': 0,'cache': 'true','page': 1,'prepage': 75,}save = {'req_body':data}# method指定POST,data指定请求体,save保存一些自定义字段。self.crawl('http://yjt.fujian.gov.cn/fjdzapp/search', callback=self.index_page, method="POST", data=data, save=save)# 抓取请求的响应数据后会调用此接口@config(age=10*60)def index_page(self, response):print(response.save['req_body']) # 查看请求体print(response.json) # 获取所抓到的数据return response.jsondef on_result(self, result):# 处理结果 ...

请求体和响应如下:
在这里插入图片描述

需要注意的地方

可以看到,字典的字段都是u'...',这表明是Unicode编码,所以想要获取字典中的字段,需要做下面的处理:

response字典中有个recordCount的key,我想获取他的值,需要将其先按照utf-8的编码方式解码为Unicode(python2默认Unicode编码,但是我们的脚本是utf-8的编码方式),这样就可以获取到字典的值啦

	recordCount = response.json.get('recordCount'.decode('utf-8'))
http://www.lryc.cn/news/220125.html

相关文章:

  • torch.cumprod实现累乘计算
  • 设计模式之迭代器模式
  • 使用SSH ,让windows和linux互通
  • 常用设计模式——策略模式
  • 牛客网 CM11.链表分割
  • [iOS开发]iOS中TabBar中间按钮凸起的实现
  • 数字时代,企业的数据共享意味着什么?
  • 壹[1],QT自定义控件创建(QtDesigner)
  • 解决Java对接LDAP AD域登录出现Unprocessed Continuation Reference(s)错误
  • could not read ok from ADB Server
  • 超越基础:Flutter 中 onTap 的 5 条规则让你脱颖而出
  • 综合布线可视化管理系统价值分析
  • 【JavaSE】基础笔记 - 类和对象(上)
  • 浅谈开口互感器在越南美的工业云系统中的应用
  • docker的使用以及注意事项
  • 大数据之LibrA数据库系统告警处理(ALM-12027 主机PID使用率超过阈值)
  • 软考 系统架构设计师系列知识点之数字孪生体(3)
  • 新闻稿的写作注意事项!纯干货
  • Android开发知识学习——从Retrofit原理来看HTTP
  • 计算机毕设 基于大数据的抖音短视频数据分析与可视化 - python 大数据 可视化
  • 1.OpenResty系列之入门简介
  • Trie树(字典树)
  • 华为政企网络安全产品集
  • 02-Sping事务实现之声明式事务基于XML的实现方式
  • 桶装水订水系统水厂送水小程序开发;
  • png或jpg等图片文件转ico图标文件,格式在线转换
  • 操作系统——对文件的 基本操作(王道视频p65)
  • 中海达守护电力人员作业安全
  • 想学计算机编程从什么学起?零基础如何自学计算机编程?中文编程开发语言工具箱之渐变标签组构件
  • 中国人民大学与加拿大女王大学金融硕士——一把开启未来金融世界的金钥匙