• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python解析html开发库pyquery使用方法

python 搞代码 4年前 (2022-01-07) 45次浏览 已收录 0个评论

PyQuery是一个类似于jQuery的Python库,也可以说是jQuery在Python上的实现,能够以jQuery的语法来操作解析 HTML 文档,易用性和解析速度都很好

例如

代码如下:

导演: 汤姆・提克威 / 拉娜・沃卓斯基 / 安迪・沃卓斯基

编剧: 汤姆・提克威 / 安迪・沃卓斯基 / 拉娜・沃卓斯基

主演: 汤姆・汉克斯 / 哈莉・贝瑞 / 吉姆・布劳德本特 / 雨果・维文 / 吉姆・斯特吉斯 / 裴斗娜 / 本・卫肖 / 詹姆斯・达西 来源gaodai#ma#com搞*!代#%^码$网/ 周迅 / 凯斯・大卫 / 大卫・吉雅西 / 苏珊・萨兰登 / 休・格兰特

类型:剧情 / 科幻 / 悬疑

官方网站:cloudatlas.warnerbros.com

制片国家/地区: 德国 / 美国 / 香港 / 新加坡

语言: 英语

上映日期:2013-01-31(中国大陆) / 2012-10-26(美国)

片长:134分钟(中国大陆) / 172分钟(美国)

IMDb链接:tt1371111

官方小站:
电影《云图》

代码如下:
from pyquery import PyQuery as pq
doc=pq(url=’http://movie.douban.com/subject/3530403/’)
data=doc(‘.pl’)
for i in data:
    print pq(i).text()

输出

代码如下:
导演
编剧
主演
类型:
官方网站:
制片国家/地区:
语言:
上映日期:
片长:
IMDb链接:
官方小站:

用法

用户可以使用PyQuery类从字符串、lxml对象、文件或者url来加载xml文档:

代码如下:
>>> from pyquery import PyQuery as pq
>>> from lxml import etree
>>> doc=pq(“”)
>>> doc=pq(etree.fromstring(“”))
>>> doc=pq(filename=path_to_html_file)
>>> doc=pq(url=’http://movie.douban.com/subject/3530403/’)

可以像jQuery一样选择对象了

代码如下:
>>> doc(‘.pl’)
[, , , , , , , , , , , , , , , , , , ,

]

这样,class为’pl’的对象就全部选择出来了。

不过在使用迭代时需要对文本进行重新封装:

代码如下:
for para in doc(‘.pl’):
    para=pq(para)
    print para.text()  
导演
编剧
主演
类型:
官方网站:
制片国家/地区:
语言:
上映日期:
片长:
IMDb链接:
官方小站:

这里得到的text是unicode码,如果要写入文件需要编码为字符串。
用户可以使用jquery提供的一些伪类(但还不支持css)来进行操作,诸如:

代码如下:
>>> doc(‘.pl:first’)
[]
>>> print  doc(‘.pl:first’).text()
导演

Attributes
获取html元素的属性

代码如下:
>>> p=pq(‘

‘)(‘p’)
>>> p.attr(‘id’)
‘hello’
>>> p.attr.id
‘hello’
>>> p.attr[‘id’]
‘hello’

赋值

代码如下:
>>> p.attr.id=’plop’
>>> p.attr.id
‘plop’
>>> p.attr[‘id’]=’ola’
>>> p.attr.id
‘ola’
>>> p.attr(id=’hello’,class_=’hello2′)
[

]

Traversing
过滤

代码如下:
>>> d=pq(‘

hello

world

‘)
>>> d(‘p’).filter(‘.hello’)
[

]
>>> d(‘p’).filter(‘#test’)
[

]
>>> d(‘p’).filter(lambda i:i==1)
[

]
>>> d(‘p’).filter(lambda i:i==0)
[

]
>>> d(‘p’).filter(lambda i:pq(this).text()==’hello’)
[

]

按照顺序选择

代码如下:
>>> d(‘p’).eq(0)
[

]
>>> d(‘p’).eq(1)
[

]

选择内嵌元素

代码如下:
>>> d(‘p’).eq(1).find(‘a’)
[]

选择父元素

代码如下:
>>> d=pq(‘

Whoah!

there

‘)
>>> d(‘p’).eq(1).find(’em’)
[]
>>> d(‘p’).eq(1).find(’em’).end()
[

]
>>> d(‘p’).eq(1).find(’em’).end().text()
‘there’
>>> d(‘p’).eq(1).find(’em’).end().end()
[

,

]

以上就是python解析html开发库pyquery使用方法的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python解析html开发库pyquery使用方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址