jsonpath解析淘票票,所有购票的城市
2024-10-11 02:01:35
解决一些反爬,校验。
复制所有请求头
import urllib.request # 请求url
url = 'https://dianying.taobao.com/cityAction.json?activityId&_ksTS=1629789477003_137&jsoncallback=jsonp138&action=cityAction&n_s=new&event_submit_doGetAllRegion=true' # 请求头
headers = { # 去掉带 :冒号 的请求头
# ':authority': 'dianying.taobao.com',
# ':method': 'GET',
# ':path': '/cityAction.json?activityId&_ksTS=1629789477003_137&jsoncallback=jsonp138&action=cityAction&n_s=new&event_submit_doGetAllRegion=true',
# ':scheme': 'https', 'accept': 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01',
# 'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'cookie': 'cna=UkO6F8VULRwCAXTqq7dbS5A8; miid=949542021157939863; sgcookie=E100F01JK9XMmyoZRigjfmZKExNdRHQqPf4v9NIWIC1nnpnxyNgROLshAf0gz7lGnkKvwCnu1umyfirMSAWtubqc4g%3D%3D; tracknick=action_li; _cc_=UIHiLt3xSw%3D%3D; enc=dA18hg7jG1xapfVGPHoQCAkPQ4as1%2FEUqsG4M6AcAjHFFUM54HWpBv4AAm0MbQgqO%2BiZ5qkUeLIxljrHkOW%2BtQ%3D%3D; hng=CN%7Czh-CN%7CCNY%7C156; thw=cn; _m_h5_tk=3ca69de1b9ad7dce614840fcd015dcdb_1629776735568; _m_h5_tk_enc=ab56df54999d1d2cac2f82753ae29f82; t=874e6ce33295bf6b95cfcfaff0af0db6; xlly_s=1; cookie2=13acd8f4dafac4f7bd2177d6710d60fe; v=0; _tb_token_=e65ebbe536158; tfstk=cGhRB7mNpnxkDmUx7YpDAMNM2gTGZbWLxUZN9U4ulewe025didli6j5AFPI8MEC..; l=eBrgmF1cOsMXqSxaBO5aFurza77tzIRb8sPzaNbMiInca6OdtFt_rNCK2Ns9SdtjgtfFBetPVKlOcRCEF3apbgiMW_N-1NKDSxJ6-; isg=BBoas2yXLzHdGp3pCh7XVmpja8A8S54lyLj1RySTHq14l7vRDNufNAjpZ2MLRxa9',
'referer': 'https://dianying.taobao.com/',
'sec-ch-ua': '"Chromium";v="92", " Not A;Brand";v="99", "Google Chrome";v="92"',
'sec-ch-ua-mobile': '?0',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36',
'x-requested-with': 'XMLHttpRequest',
} # 请求对象的定制
request = urllib.request.Request(url = url, headers = headers) # 模拟浏览器,向服务器发出请求
response = urllib.request.urlopen(request) # 获取响应数据(read读方法返回字节形式二进制数据.decode解码)
content = response.read().decode('utf-8') # 去掉json文件中的 jsonp();
# split 切割,用(切 取列表中的第2个元素.再用)切一次 取列表中的第1元素
content = content.split('(')[1].split(')')[0] # 保存josn文件
with open('jsonpath解析淘票票.json','w',encoding='utf-8')as fp:
fp.write(content) import json
import jsonpath # 读取josn文件
obj = json.load(open('jsonpath解析淘票票.json','r', encoding='utf-8')) # 获取所有的城市名字
city_list = jsonpath.jsonpath(obj, '$..regionName') print(city_list)
注意:切割字符串,返回被切割的列表。
切割之前数据
用( 切
用(切完取列表中的第二个元素. 再 用) 切一次
用(切 取列表中的第2个元素.再用)切一次 取列表中的第1元素。就得到想要的中间数据
最新文章
- android开机过程简单描述
- hibernate3
- bzoj4305: 数列的GCD
- BZOJ-1922 大陆争霸 多限制、分层图最短路 (堆+dijkstra)
- 【LeetCode】12. Integer to Roman 整型数转罗马数
- firefox常用扩展、脚本
- 遍历Map的几种方法
- rsync随机启动脚本
- springboot+jpa+thymeleaf增删改查的示例(转)
- Hadoop2.9.0安装
- 国内第一本micropython的书出版《机器人Python极客编程入门与实战》
- 使用 JavaScript 将网站后台的数据变化实时更新到前端
- bresenhan算法数学推导
- LeetCode(64):最小路径和
- Linux shell命令 cp 加上-f还是提示是否覆盖
- 【SQL】SQL Between用法
- bzoj 3122 随机数生成器 - BSGS
- Nodejs学习笔记(二)—事件模块
- Java基础教程(16)--注解
- C++ strcat(template版本)
热门文章
- mysql面试题及答案,mysql最新面试题,mysql面试题大全汇总
- 从零入门 Serverless | 一文讲透 Serverless Kubernetes 容器服务
- 【nvidia jetson xavier】 Deepstream Yolov3示例模型运行
- Java基础之(三):IDEA的安装及破解
- 《手把手教你》系列技巧篇(三十二)-java+ selenium自动化测试-select 下拉框(详解教程)
- Python 3.10 正式发布,新增模式匹配,同事用了直呼真香!
- [kuangbin带你飞]专题一 简单搜索 棋盘问题
- centos7谷歌chrome内网部署演示
- XiaoXin 13Pro-Hackintosh 小新13pro崇尚极简的黑苹果双系统
- 命名空间、作用域、LEGB法则、垃圾回收机制