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基础知识_浅谈用户交互
May 31 Python
Python实现可自定义大小的截屏功能
Jan 20 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 Python
python MysqlDb模块安装及其使用详解
Feb 23 Python
python之mock模块基本使用方法详解
Jun 27 Python
python2爬取百度贴吧指定关键字和图片代码实例
Aug 14 Python
Python 寻找局部最高点的实现
Dec 05 Python
什么是python的必选参数
Jun 21 Python
Python字符串split及rsplit方法原理详解
Jun 29 Python
python入门:argparse浅析 nargs='+'作用
Jul 12 Python
Python 文本滚动播放器的实现代码
Apr 25 Python
pandas DataFrame.shift()函数的具体使用
May 24 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 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
url decode problem 解决方法
2011/12/26 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
PHP中session变量的销毁
2014/02/27 PHP
PHP函数strip_tags的一个bug浅析
2014/05/22 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
PHP JWT初识及其简单示例
2018/10/10 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
删除select中所有option选项jquery代码
2013/08/12 Javascript
JS实现自适应高度表单文本框的方法
2015/02/25 Javascript
javascript实现自动填写表单实例简析
2015/12/02 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
bootstrap中selectpicker下拉框使用方法实例
2018/03/22 Javascript
Vue中用props给data赋初始值遇到的问题解决
2018/11/27 Javascript
如何在面试中手写出javascript节流和防抖函数
2020/10/22 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
Python中编写ORM框架的入门指引
2015/04/29 Python
在Python的while循环中使用else以及循环嵌套的用法
2015/10/14 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
Python函数式编程
2017/07/20 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
python ETL工具 pyetl
2020/06/07 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
2014教师个人自我评价范文
2014/09/13 职场文书
大学新生军训自我鉴定
2014/09/18 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
单位接收函范文
2015/01/30 职场文书
交通事故起诉书
2015/05/19 职场文书
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技
使用Python解决图表与画布的间距问题
2022/04/11 Python
Python自动化实战之接口请求的实现
2022/05/30 Python