Python抓包并解析json爬虫的完整实例代码


Posted in Python onNovember 03, 2020

Python抓包并解析json爬虫

在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫:

Python抓包并解析json爬虫的完整实例代码

例如:

需要爬取网页中第二页的数据时,点击F12➡网络(Network)➡XHR,最好点击清除键,如下图:

Python抓包并解析json爬虫的完整实例代码

通过点击“第二页”,会出现一个POST请求(有时会是GET请求),点击POST请求的url,(这里网址以POST请求为例),

如图:

Python抓包并解析json爬虫的完整实例代码

然后复制参数代码

代码展示:

import requests
import json

url = 'https://m.ctrip.com/restapi/soa2/13444/json/getCommentCollapseList?_fxpcqlniredt=09031130211378497389'

header={
'authority': 'm.ctrip.com',
'method': 'POST',
'path': '/restapi/soa2/13444/json/getCommentCollapseList?_fxpcqlniredt=09031130211378497389',
'scheme': 'https',
'accept': '*/*',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'no-cache',
'content-length': '278',
'content-type': 'application/json',
'cookie': '__utma=1.1986366783.1601607319.1601607319.1601607319.1; __utmz=1.1601607319.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _RSG=blqD1d4mGX0BA_amPD3t29; _RDG=286710759c35f221c000cbec6169743cac; _RGUID=0850c049-c137-4be5-90b7-0cd67093f28b; MKT_CKID=1601607321903.rzptk.lbzh; _ga=GA1.2.1986366783.1601607319; nfes_isSupportWebP=1; appFloatCnt=8; _gcl_dc=GCL.1601638857.CKzg58XqlewCFQITvAodioIJWw; Session=SmartLinkCode=U155952&SmartLinkKeyWord=&SmartLinkQuary=&SmartLinkHost=&SmartLinkLanguage=zh; Union=OUID=index&AllianceID=4897&SID=155952&SourceID=&createtime=1602506741&Expires=1603111540922; MKT_OrderClick=ASID=4897155952&AID=4897&CSID=155952&OUID=index&CT=1602506740926&CURL=https%3A%2F%2Fwww.ctrip.com%2F%3Fsid%3D155952%26allianceid%3D4897%26ouid%3Dindex&VAL={"pc_vid":"1601607319353.3cid9z"}; MKT_Pagesource=PC; _RF1=218.58.59.72; _bfa=1.1601607319353.3cid9z.1.1602506738089.1602680023977.4.25; _bfi=p1%3D290510%26p2%3D290510%26v1%3D25%26v2%3D24; MKT_CKID_LMT=1602680029515; __zpspc=9.5.1602680029.1602680029.1%232%7Cwww.baidu.com%7C%7C%7C%25E6%2590%25BA%25E7%25A8%258B%7C%23; _gid=GA1.2.1363667416.1602680030; _jzqco=%7C%7C%7C%7C1602680029668%7C1.672451398.1601607321899.1602506755440.1602680029526.1602506755440.1602680029526.undefined.0.0.16.16',
'cookieorigin': 'https://you.ctrip.com',
'origin': 'https://you.ctrip.com',
'pragma': 'no-cache',
'referer': 'https://you.ctrip.com/',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-site',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'
}

dat = {
 "arg": {
  'channelType': 2,
  'collapseType': 0,
  'commentTagId': 0,
  'pageIndex': 1,
  'pageSize': 10,
  'poiId': 75648,
  'sortType': 3,
  'sourceType': 1,
  'starType': 0
 },
 "head": {
  'auth': "",
  'cid': "09031117213661657011",
  'ctok': "",
  'cver': "1.0",
  'extension': [],
  'lang': "01",
  'sid': "8888",
  'syscode': "09",
  'xsid': ""
 }
}

r = requests.post(url, data=json.dumps(dat), headers=header)
s = r.json()
print(s)

运行结果:

Python抓包并解析json爬虫的完整实例代码

然后右击结果,再点击Show as JSON:

Python抓包并解析json爬虫的完整实例代码

最后就会出现目标url的响应信息,就可以进行爬取了!!!

总结

到此这篇关于Python抓包并解析json爬虫的文章就介绍到这了,更多相关Python抓包并解析json爬虫内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的Tornado框架异步编程入门实例
Apr 24 Python
Python实现的单向循环链表功能示例
Nov 10 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
Nov 16 Python
Python 带有参数的装饰器实例代码详解
Dec 06 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
Jan 29 Python
Django csrf 两种方法设置form的实例
Feb 03 Python
浅谈django2.0 ForeignKey参数的变化
Aug 06 Python
vscode 配置 python3开发环境的方法
Sep 19 Python
PyTorch实现更新部分网络,其他不更新
Dec 31 Python
Python json转字典字符方法实例解析
Apr 13 Python
python 解决mysql where in 对列表(list,,array)问题
Jun 06 Python
基于Django集成CAS实现流程详解
Nov 28 Python
python中not、and和or的优先级与详细用法介绍
Nov 03 #Python
如何基于Python按行合并两个txt
Nov 03 #Python
Python txt文件如何转换成字典
Nov 03 #Python
Python headers请求头如何实现快速添加
Nov 03 #Python
python time()的实例用法
Nov 03 #Python
Python-openpyxl表格读取写入的案例详解
Nov 02 #Python
Python常用扩展插件使用教程解析
Nov 02 #Python
You might like
php分页代码学习示例分享
2014/02/20 PHP
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
深入分析PHP引用(&)
2014/09/04 PHP
Thinkphp连表查询及数据导出方法示例
2016/10/15 PHP
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
php常用的工具开发整理
2019/09/26 PHP
js活用事件触发对象动作
2008/08/10 Javascript
jquery的index方法实现tab效果
2011/02/16 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
[01:46]TI4西雅图DOTA2前线报道 中国选手抱团调时差
2014/07/08 DOTA
[01:02:45]完美世界DOTA2联赛 LBZS vs Forest 第三场 11.07
2020/11/09 DOTA
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
python实现人人网登录示例分享
2014/01/19 Python
python中__call__内置函数用法实例
2015/06/04 Python
django实现前后台交互实例
2017/08/07 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
python中round函数如何使用
2020/06/19 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
基于HTML5的WebSocket的实例代码
2018/08/15 HTML / CSS
留学生求职信
2014/06/03 职场文书
心理学专业求职信
2014/06/16 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
会计工作岗位职责
2015/02/03 职场文书
承诺保证书格式
2015/02/28 职场文书
法律进社区活动总结
2015/05/07 职场文书
2016年“我们的节日·端午节”活动总结
2016/04/01 职场文书