pyquery解析库提取数据特例

1.提取同名多标签中最后一个标签的文本 PyQuery.eq(index)

豆瓣TOP250中提取评价人数:

text='''
9.7 2029026人评价
'''
doc = PyQuery(text)
doc('.star span').eq(-1).text() #PyQuery.eq(index)用于同名标签筛选,index从0开始,-1表最后一个

# doc('.star span:last-child').text() 也可达到效果,第一个节点first-child,第n(n>1)个节点nth-child(n)

2.标签看起来不完整,文本含拉丁空格及换行符等

豆瓣TOP250中提取“导演,演员,上映时间,地区,类别”
pyquery解析库提取数据特例_第1张图片
可以看到,第一个p标签的class属性没有值,实际就是

,另外br标签看起来不完整,不管它,直接从p标签提取文本看看结果。
定位p的父标签如

,再选择第一个p标签,item.find(‘p’).eq(0)。先text().split(’ ‘)输出看一下结果列表有哪些字串元素,再进行详细提取。该例text()结果含有拉丁空格\xa0和换行\n,可据此进行split(’\n’)和split(’\xa0’)切片提取即可。

#试着提取导演和上映时间
doc = pq(text) #pq:PyQuery
position = doc('.bd p').eq(0).text().split('\n')[0].split('\xa0')[0]
time = doc('.bd p').eq(0).text().split('\n')[1].split('/')[1].strip()

注: 这里定位p的父标签仅仅就图片中的文本而言,具体请求链接后的文本定位视真实情况而定

你可能感兴趣的:(python)