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 相关文章推荐
django 实现电子支付功能的示例代码
Jul 25 Python
python生成1行四列全2矩阵的方法
Aug 04 Python
python中多个装饰器的执行顺序详解
Oct 08 Python
python实现将多个文件分配到多个文件夹的方法
Jan 07 Python
Python实现钉钉发送报警消息的方法
Feb 20 Python
Flask配置Cors跨域的实现
Jul 12 Python
python字符串替换re.sub()方法解析
Sep 18 Python
Pandas时间序列:重采样及频率转换方式
Dec 26 Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 Python
Django中从mysql数据库中获取数据传到echarts方式
Apr 07 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
Oct 15 Python
如何用PyPy让你的Python代码运行得更快
Dec 02 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 Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
jQuery.prop() 使用详解
2015/07/19 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
夯基础之手撕javascript继承详解
2020/11/09 Javascript
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
2017/06/15 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
Python 实现一个计时器
2020/07/28 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
世界最大的海报和艺术印刷商店:AllPosters.com
2017/02/01 全球购物
施华洛世奇天猫官方旗舰店:SWAROVSKI
2017/04/17 全球购物
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
2014年安全生产大检查方案
2014/05/13 职场文书
项目投资意向书范本
2015/05/09 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
写给汽车4S店的创业计划书,拿来即用!
2019/08/09 职场文书
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python