解决一些反爬,校验。

复制所有请求头

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元素。就得到想要的中间数据

最新文章

  1. android开机过程简单描述
  2. hibernate3
  3. bzoj4305: 数列的GCD
  4. BZOJ-1922 大陆争霸 多限制、分层图最短路 (堆+dijkstra)
  5. 【LeetCode】12. Integer to Roman 整型数转罗马数
  6. firefox常用扩展、脚本
  7. 遍历Map的几种方法
  8. rsync随机启动脚本
  9. springboot+jpa+thymeleaf增删改查的示例(转)
  10. Hadoop2.9.0安装
  11. 国内第一本micropython的书出版《机器人Python极客编程入门与实战》
  12. 使用 JavaScript 将网站后台的数据变化实时更新到前端
  13. bresenhan算法数学推导
  14. LeetCode(64):最小路径和
  15. Linux shell命令 cp 加上-f还是提示是否覆盖
  16. 【SQL】SQL Between用法
  17. bzoj 3122 随机数生成器 - BSGS
  18. Nodejs学习笔记(二)—事件模块
  19. Java基础教程(16)--注解
  20. C++ strcat(template版本)

热门文章

  1. mysql面试题及答案,mysql最新面试题,mysql面试题大全汇总
  2. 从零入门 Serverless | 一文讲透 Serverless Kubernetes 容器服务
  3. 【nvidia jetson xavier】 Deepstream Yolov3示例模型运行
  4. Java基础之(三):IDEA的安装及破解
  5. 《手把手教你》系列技巧篇(三十二)-java+ selenium自动化测试-select 下拉框(详解教程)
  6. Python 3.10 正式发布,新增模式匹配,同事用了直呼真香!
  7. [kuangbin带你飞]专题一 简单搜索 棋盘问题
  8. centos7谷歌chrome内网部署演示
  9. XiaoXin 13Pro-Hackintosh 小新13pro崇尚极简的黑苹果双系统
  10. 命名空间、作用域、LEGB法则、垃圾回收机制