jsonPath解析测试

上一篇文章测试了解析测试的HTML源码,获取需要的元素值。

如下的测试代码模仿网上示例,但是经过了我的理解和实际测试验证。测试流程如下:

测试淘票票支持的城市

步骤1: 进入淘票票官网

步骤2: 找到url

步骤3: 复制请求的URL到代码中

url =‘https://dianying.taobao.com/cityAction.json?activityId&_ksTS=1639658592150_137&jsoncallback=jsonp138&action=cityAction&n_s=new&event_submit_doGetAllRegion=true’

步骤4:以及请求头添加代码发送的Headers信息

headers = {

‘accept’:‘text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01’,

‘cookie’:‘miid=149457062080870528; enc=QY6eoneP3TUCAdTp8d3MJOgJnMLqmmIpQS+gLj6EDPuxew065EXVCvNrEdIXmozlUufg5zUvNyZ+YTQ2V4p9cw==; cna=4Nz+F9mZ91gCAbfAW780HLti; thw=cn; hng=TW|zh-TW|TWD|158; t=17c5c8356ce22ddc6fe08337efa1cadc; cookie2=1adeccce649568d2b7fcd5576f4d11cb; v=0; _tb_token_=3e783b73fe3e7; xlly_s=1; l=eBa1BNl7QPMcNlJvBOfwlurza77tJIRAguPzaNbMiOCP_Z5H5tihW6QGtHTMCnGVhsCMR35T8LL0BeYBqC2sjqj4axom4vkmn; tfstk=cQM5BVxpvabSAfAFU0tV4EEDoKwFaBLbmQa-VXenIR-Msnn7ksb5QPT03Xb0LkEf.; isg=BKamD7Te-4rYW5CJrdtUKgGr9xwoh-pBST3dRZBPqkmkE0Yt-BftUc_taw-fu-JZ’,

‘referer’:‘https://dianying.taobao.com/?pid=mm_25282911_3455987_122436732’,

‘user-agent’:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36’,

‘x-requested-with’:‘XMLHttpRequest’

}

步骤5:发送请求获取响应值

request = urllib.request.Request(url=url, headers=headers)

response = urllib.request.urlopen(request)

content = response.read().decode(‘utf-8’)

# print(content)

打印的响应值并非是标准Json格式

需要将返回的字符串做处理,才能成为标准的Json字符串。

步骤6, 返回字符串处理为标准的JSON字符串

# split

content = content.split(’(’)[1].split(’)’)[0]

print(content)

步骤7,使用jsonPath提取支持的城市名称

with open(‘tpp.json’, ‘w’, encoding=‘utf-8’)as f:

f.write(content)

jsObj = json.load(open(‘tpp.json’, ‘r’, encoding=‘utf-8’))

city_list = jsonpath.jsonpath(jsObj, ‘$…regionName’)

print(city_list)

输出:

[‘阿坝’, ‘阿克苏’, ‘阿拉善’, ‘安康’, ‘安庆’, ‘鞍山’, ‘安顺’, ‘安阳’, ‘白城’, ‘百色’, ‘白山’, ‘白银’, ‘保定’, ‘宝鸡’, ‘保山’, ‘包头’, ‘巴彦淖尔’, ‘巴中’, ‘北海’, ‘北京’, ‘蚌埠’, ‘本溪’, ‘毕节’, ‘滨州’, ‘亳州’, ‘巴音郭楞’, ‘沧州’, ‘长春’, ‘常德’, ‘昌吉’, ‘昌江’, ‘长沙’, ‘长治’, ‘常州’, ‘朝阳’, ‘潮州’, ‘承德’, ‘成都’, ‘澄迈县’, ‘郴州’, ‘赤峰’, ‘池州’, ‘重庆’, ‘崇左’, ‘楚雄’, ‘滁州’, ‘大理’, ‘大连’, ‘儋州’, ‘丹东’, ‘大庆’, ‘大同’, ‘大兴安岭’, ‘达州’, ‘德宏’, ‘德阳’, ‘德州’, ‘定安’, ‘定西’, ‘迪庆’, ‘东方’, ‘东莞’, ‘东营’, ‘鄂尔多斯’, ‘恩施’, ‘鄂州’, ‘防城港’, ‘佛山’, ‘抚顺’, ‘阜新’, ‘阜阳’, ‘抚州’, ‘福州’, ‘甘南’, ‘赣州’, ‘甘孜’, ‘巩义市’, ‘广安’, ‘广元’, ‘广州’, ‘贵港’, ‘桂林’, ‘贵阳’, ‘固原’, ‘哈尔滨’, ‘海东’, ‘海口’, ‘海南州’, ‘海西’, ‘哈密’, ‘邯郸’, ‘杭州’, ‘汉中’, ‘鹤壁’, ‘河池’, ‘合肥’, ‘鹤岗’, ‘黑河’, ‘衡水’, ‘衡阳’, ‘和田’, ‘河源’, ‘菏泽’, ‘贺州’, ‘红河’, ‘淮安’, ‘淮北’, ‘怀化’, ‘淮南’, ‘黄冈’, ‘黄南’, ‘黄山’, ‘黄石’, ‘呼和浩特’, ‘惠州’, ‘葫芦岛’, ‘呼伦贝尔’, ‘湖州’, ‘佳木斯’, ‘吉安’, ‘江门’, ‘焦作’, ‘嘉兴’, ‘嘉峪关’, ‘揭阳’, ‘吉林’, ‘济南’, ‘金昌’, ‘晋城’, ‘景德镇’, ‘荆门’, ‘荆州’, ‘金华’, ‘济宁’, ‘晋中’, ‘锦州’, ‘九江’, ‘酒泉’, ‘鸡西’, ‘济源’, ‘开封’, ‘喀什’, ‘克拉玛依’, ‘克孜勒苏柯尔克孜’, ‘昆明’, ‘来宾’, ‘廊坊’, ‘兰州’, ‘拉萨’, ‘乐山’, ‘凉山’, ‘连云港’, ‘聊城’, ‘辽阳’, ‘辽源’, ‘丽江’, ‘临沧’, ‘临汾’, ‘临高’, ‘临夏’, ‘临沂’, ‘林芝’, ‘丽水’, ‘六安’, ‘六盘水’, ‘柳州’, ‘陇南’, ‘龙岩’, ‘娄底’, ‘陵水’, ‘吕梁’, ‘漯河’, ‘洛阳’, ‘泸州’, ‘马鞍山’, ‘茂名’, ‘眉山’, ‘梅州’, ‘绵阳’, ‘牡丹江’, ‘南昌’, ‘南充’, ‘南京’, ‘南宁’, ‘南平’, ‘南通’, ‘南阳’, ‘内江’, ‘宁波’, ‘宁德’, ‘怒江’, ‘盘锦’, ‘攀枝花’, ‘平顶山’, ‘平凉’, ‘萍乡’, ‘普洱’, ‘莆田’, ‘濮阳’, ‘黔东南’, ‘潜江’, ‘黔南’, ‘黔西南’, ‘青岛’, ‘庆阳’, ‘清远’, ‘秦皇岛’, ‘钦州’, ‘琼海’, ‘琼中’, ‘齐齐哈尔’, ‘七台河’, ‘泉州’, ‘曲靖’, ‘衢州’, ‘日喀则’, ‘日照’, ‘三门峡’, ‘三明’, ‘三亚’, ‘上海’, ‘商洛’, ‘商丘’, ‘上饶’, ‘山南’, ‘汕头’, ‘汕尾’, ‘韶关’, ‘绍兴’, ‘邵阳’, ‘沈阳’, ‘深圳’, ‘石河子’, ‘石家庄’, ‘十堰’, ‘石嘴山’, ‘双鸭山’, ‘朔州’, ‘四平’, ‘松原’, ‘绥化’, ‘遂宁’, ‘随州’, ‘宿迁’, ‘宿州’, ‘苏州’, ‘塔城’, ‘泰安’, ‘太原’, ‘台州’, ‘泰州’, ‘唐山’, ‘天津’, ‘天门’, ‘天水’, ‘铁岭’, ‘铜川’, ‘通化’, ‘通辽’, ‘铜陵’, ‘铜仁’, ‘万宁’, ‘潍坊’, ‘威海’, ‘渭南’, ‘文昌’, ‘文山’, ‘温州’, ‘乌海’, ‘武汉’, ‘芜湖’, ‘五家渠’, ‘乌兰察布’, ‘乌鲁木齐’, ‘武威’, ‘无锡’, ‘吴忠’, ‘梧州’, ‘厦门’, ‘西安’, ‘湘潭’, ‘湘西’, ‘襄阳’, ‘咸宁’, ‘仙桃’, ‘咸阳’, ‘孝感’, ‘锡林郭勒’, ‘兴安盟’, ‘邢台’, ‘兴义市’, ‘西宁’, ‘新乡’, ‘信阳’, ‘新余’, ‘忻州’, ‘西双版纳’, ‘宣城’, ‘许昌’, ‘徐州’, ‘雅安’, ‘延安’, ‘延边’, ‘盐城’, ‘阳江’, ‘洋浦’, ‘阳泉’, ‘扬州’, ‘烟台’, ‘宜宾’, ‘宜昌’, ‘伊春’, ‘宜春’, ‘伊犁’, ‘银川’, ‘营口’, ‘鹰潭’, ‘宜兴市’, ‘益阳’, ‘永州’, ‘岳阳’, ‘玉林’, ‘榆林’, ‘运城’, ‘云浮’, ‘玉树’, ‘玉溪’, ‘枣庄’, ‘张家界’, ‘张家口’, ‘张掖’, ‘漳州’, ‘湛江’, ‘肇庆’, ‘昭通’, ‘郑州’, ‘镇江’, ‘中山’, ‘中卫’, ‘周口’, ‘舟山’, ‘珠海’, ‘驻马店’, ‘株洲’, ‘淄博’, ‘自贡’, ‘资阳’, ‘遵义’]

获取了想要的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flysh05

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值