例如
代碼如下:
導演: 湯姆·提克威 / 拉娜·沃卓斯基 / 安迪·沃卓斯基
編劇: 湯姆·提克威 / 安迪·沃卓斯基 / 拉娜·沃卓斯基
主演: 湯姆·漢克斯 / 哈莉·貝瑞 / 吉姆·布勞德本特 / 雨果·維文 / 吉姆·斯特吉斯 / 裴鬥娜 / 本·衛肖 / 詹姆斯·達西 / 周迅 / 凱斯·大衛 / 大衛·吉雅西 / 蘇珊·薩蘭登 / 休·格蘭特
類型: 劇情 / 科幻 / 懸疑
官方網站: 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()
[
,
]