dtanys使用场景
如果不熟悉语法可参考 dtanys项目
核心语法:XDict(Parsing object, Analytical syntax).edict()
Parsing object
为 list or dict or tuple
Analytical syntax
为 str
- 提取所有键为
k
的值1
2
3
4
5
6
7
8
9
10
11
12
13from dtanys import XDict
from pprint import pprint
import requests
url = 'http://c.3g.163.com/nc/video/list/VAP4BFR16/y/0-10.html'
res = requests.get(url,headers={'User-Agent':"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50"}).json()
# 打印数据
pprint(res)
# 提取所有mp4的url
print(XDict(res,'/*mp4_url').edict()) - 提取对象形如
iterable[dict]
的数据1
2
3
4
5
6
7
8
9
10
11
12
13from dtanys import XDict
from pprint import pprint
import requests
test_object = [
{'a': 1, 'b' : 2},
{'a': 3, 'b' : 4},
{'a': 5, 'b' : 6, 'e' : 0},
{'a': 7, 'b' : 8},
{'a': 9, 'b' : 10, 'c': 0},
]
print(XDict(test_object,"//['a','b']").edict())
注://['k']
需要添加 '' or ""
,且选取的键值在 iterable
都需要存在
- 提取分形节点一致的数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14from dtanys import XDict
from pprint import pprint
import requests
url = 'http://c.3g.163.com/nc/video/list/VAP4BFR16/y/0-10.html'
res = requests.get(url,headers={'User-Agent':"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50"}).json()
# 打印数据
pprint(res)
# 提取所有alias,tid,tname,topic_icons 可排序
print(XDict(res,"/VAP4BFR16//videoTopic['tid','alias','tname','topic_icons']").edict()) - 配合切片一起使用
1
2
3
4
5
6
7
8
9
10
11
12
13from dtanys import XDict
from pprint import pprint
import requests
url = 'http://c.3g.163.com/nc/video/list/VAP4BFR16/y/0-10.html'
res = requests.get(url,headers={'User-Agent':"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50"}).json()
# 打印数据
# pprint(res)
# 提取所有res[VAP4BFR16]下标为1,3,5,7,9,10的m3u8_url,mp4_url
print(XDict(res,"/VAP4BFR16[::2]//['m3u8_url','mp4_url']").edict())
注:当使用切片是选取对象必须是 iterable
其他问题请前往:issues