鱼C论坛

 找回密码
 立即注册
查看: 1442|回复: 7

[作品展示] 额外话题--js爬虫的jsonpath模块

[复制链接]
发表于 2019-4-14 04:04:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Stubborn 于 2019-4-14 04:06 编辑

js动态加载的数据都是给你返回的json串数据,和xpath差不多的吧。
  1. # -*- coding: utf-8 -*-
  2. # @Time    : 2019-04-08 00:35
  3. # @Author  : Ein
  4. # @File    : xpath和jsonxpath对比.py
  5. # @Software: PyCharm
  6. book_json = {"store": {
  7.     "book": [
  8.       {
  9.         "category": "数学",
  10.         "author": "Ein",
  11.         "title": "初中高数",
  12.         "price": 8.95
  13.       },
  14.       {
  15.         "category": "历史",
  16.         "author": "Ethan",
  17.         "title": "中庸",
  18.         "isbn":"123456",
  19.         "price": 16
  20.       },
  21.       {
  22.         "category": "化学",
  23.         "author": "Eining",
  24.         "title": "氮气",
  25.         "isbn":"8722058",
  26.         "price": 17.85
  27.       },
  28.       {
  29.         "category": "物理",
  30.         "author": "Stubbron",
  31.         "title": "牛顿第三定律",
  32.         "price": 88.88
  33.       },
  34.       {
  35.         "category": "英语",
  36.         "author": "loae",
  37.         "title": "六级英语大纲",
  38.         "price": 77.68
  39.       },
  40.       {
  41.         "category": "政治",
  42.         "author": "习大大",
  43.         "title": "三进三出",
  44.         "price": 27.7
  45.       }
  46.     ],
  47.     "bicycle": {
  48.       "color": "red",
  49.       "pricr": 19.95
  50.     }
  51.   }}
  52. import jsonpath

  53. #jsonxpath和xpath
  54. #查找书点所有的author
  55. ret = jsonpath.jsonpath(book_json,'$.store.book[*].author')
  56. #res = tree.xpath('/store/boob/author')

  57. #所有的作者
  58. ret1 = jsonpath.jsonpath(book_json,'$..author')
  59. #res1 = tree.xpath('//author')

  60. #查找store下所有的节点
  61. ret2 = jsonpath.jsonpath(book_json,'$.store.*')
  62. #res2 = tree.xpath('/store/*')

  63. # 查找store下所有的price
  64. ret3 = jsonpath.jsonpath(book_json,'$.store..price')
  65. #res2 = tree.xpath('//store//price')

  66. #查找第三个book,返回的是一个列表
  67. ret4 = jsonpath.jsonpath(book_json,'$..book[2]')
  68. #res2 = tree.xpath('//book[3]')

  69. #查找最后一本book
  70. ret5 = jsonpath.jsonpath(book_json,'$..book[(@.length-1)]')
  71. #res2 = tree.xpath('//book[last()]')

  72. #过滤包含有isbn键值的数据
  73. ret6 = jsonpath.jsonpath(book_json,'$..book[?(@.isbn)]')
  74. #res2 = tree.xpath('//book[isbn]')

  75. #过滤price低于20的书籍
  76. ret7 = jsonpath.jsonpath(book_json,'$..book[?(@.price<10)]')
  77. #res2 = tree.xpath('//book[price<10]')
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-4-14 10:17:51 | 显示全部楼层
可以确定 某网页使用了jquery 把mp3的全路径给藏起来了,应该怎么破,或者我应该学习一些哪些资料
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-14 13:17:50 | 显示全部楼层
wp231957 发表于 2019-4-14 10:17
可以确定 某网页使用了jquery 把mp3的全路径给藏起来了,应该怎么破,或者我应该学习一些哪些资料

我也是刚学,可以吧链接发给我瞅瞅
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-14 13:28:19 | 显示全部楼层
Stubborn 发表于 2019-4-14 13:17
我也是刚学,可以吧链接发给我瞅瞅

先谢谢了

http://www.lrts.me/book/32931
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-14 16:37:53 | 显示全部楼层
本帖最后由 Stubborn 于 2019-4-14 17:58 编辑


很容易啊,我写个教程吧  戳我前进
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-14 17:59:39 | 显示全部楼层
wp231957 发表于 2019-4-14 13:28
先谢谢了

http://www.lrts.me/book/32931

OK 链接上面有了,看不懂思路留言即可
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-14 21:15:39 From FishC Mobile | 显示全部楼层
Stubborn 发表于 2019-4-14 17:59
OK 链接上面有了,看不懂思路留言即可

是32931啊,你那个不对吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-14 21:52:48 | 显示全部楼层
wp231957 发表于 2019-4-14 21:15
是32931啊,你那个不对吧

你那个只能爬20章,剩余的提示需要app端听,没有试过能不能请求成功,暂时还不知道怎么破哦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-26 06:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表