PyQuery庫學習(原文)
爬蟲
pyquery:一個類似jquery的python庫
pyquery
允許您在xml
文檔上進行jquery
查詢。API
儘可能與jquery
類似。pyquery
使用lxml
進行快速xml
和html
操作。參考:手冊
1、初始化處理
html = '''
<div id="wrap">
<ul class="s_from">
asdasd
<link href="http://asda.com">asdadasdad12312</link>
<link href="http://asda1.com">asdadasdad12312</link>
<link href="http://asda2.com">asdadasdad12312</link>
</ul>
</div>
'''
from pyquery import PyQuery as pq
from lxml import etree
#傳html,傳url,傳文件。
doc = pq(html)
doc = pq(url = 'http://www.baidu.com')
doc = pq(friename = 'demo.html')
2、基本操作
1、查找子節點,父節點,兄弟節點
items=doc("#wrap") #定位到這個id標籤
link = items.find('.s_from') # 找到items裏面這個節點
link = items.children() #找到items裏面所有節點。
link = items.children('link') #所有節點再找到link點
items=doc(".s_from") #父節點
parent_href=items.parent() #一個父節點
parent_href=items.parents()#所有父節點
siblings_href=items.siblings()
siblings_href=items.siblings(’id') #找到兄弟節點中有這個標籤的
print(doc('#container .list li')) #查找id爲container裏面的class爲list的li標籤
2、節點的遍歷
list = doc("link").items()
for lt in list:
print(lt)
帶有items屬性的節點可以循環
3、獲取節點屬性,文本,標籤中html代碼
its=doc("link").items()
for it in its:
print(it.attr('href')) # attr屬性值
print(it.attr.href)
its=doc("link").items()
for it in its:
print(it.text())
its=doc("link").items()
for it in its:
print(it.html())
4、DO操作
.addClass(value):添加標籤
.removerClass(value):移除標籤
.hasClass(name):判斷是否包含指定的 class,返回 True 或 False;
5、僞類選擇器
較少用到