python pyquery.get()_Python爬虫之PyQuery使用(六)
Python爬蟲之PyQuery使用
PyQuery簡介
pyquery能夠通過選擇器精確定位 DOM 樹中的目標并進行操作。pyquery相當于jQuery的python實現,可以用于解析HTML網頁等。它的語法與jQuery幾乎完全相同,對于使用過jQuery的人來說很熟悉,也很好上手。
初始化
有 4 種方法可以進行初始化:
可以通過傳入 字符串、lxml、文件 或者 url 來使用PyQuery
from pyquery import PyQuery as pq
from lxml import etree
d = pq("")#傳入字符串
d = pq(etree.fromstring(""))#傳入lxml
d = pq(url='http://baidu.com/') #傳入url
d = pq(filename=path_to_html_file) #傳入文件
基本CSS選擇器
html='''
歌手高空拍MV墜亡
佛祖朱龍廣金婚
常見租房陷阱
靳東回應發錯詩詞
煤老板們的影視江湖
1024程序員節
美的合并小天鵝
京昆高速4車相撞
'''
from pyquery import PyQuery as pq
doc = pq(html)
# 獲取所有a標簽
print(doc('body .mh-col li a'))
注意:
類名用.
id用#
標簽用標簽名
另外選擇的是具有層級關系,從左到右,不是直接的父子的關系。
運行結果如下:
歌手高空拍MV墜亡
佛祖朱龍廣金婚
常見租房陷阱
靳東回應發錯詩詞
煤老板們的影視江湖
1024程序員節
美的合并小天鵝
京昆高速4車相撞
操作
html='''
歌手高空拍MV墜亡
佛祖朱龍廣金婚
常見租房陷阱
靳東回應發錯詩詞
煤老板們的影視江湖
1024程序員節
美的合并小天鵝
新聞
京昆高速4車相撞
'''
from pyquery import PyQuery as pq
doc = pq(html)
items = doc('.mh-col')
#.find():查找嵌套元素
alist = items.find('li a')
print(alist)
#查找所有子元素
alist2 = items.children()
print(alist2)
#查找指定的子元素
alist3 = items.children('.g-ellipsis1')
print(alist2)
#查找父元素
#注意:一個元素只有一個父元素
body = items.parent()
print(body)
#查找祖先元素
content = items.parents()
print(content)
#查找兄弟元素
li = doc('.mh-col .g-ellipsis1')
print(li.siblings())
#遍歷 單個元素
#遍歷所有的a標簽
alist =doc('.mh-col li a').items()
for a in alist: print(a)
獲取信息
獲取屬性
a =doc('.mh-col li .g-a-noline8')
print(a.attr['href'])
print(a.attr.href)
獲取文本
a =doc('.mh-col li .g-a-noline8')
print(a.text())
獲取HTML
a =doc('.mh-col li .g-a-noline8')
print(a.html())
簡單的DOM操作
#addClass、removerClass
#修改類名
a =doc('.mh-col li .g-a-noline8')
print(a)
a.removeClass('g-a-noline8')
print(a)
a.addClass('g-a-noline8')
print(a)
#attr、css
#修改屬性和樣式
a =doc('.mh-col li .g-a-noline8')
print(a)
a.attr('name','link')
print(a)
a.css('font-size','14px')
print(a)
#remove
#刪除標簽
li = doc('.mh-col .g-ellipsis8')
print(li)
li.find('a').remove()
print(li)
更多的DOM操作:https://pyquery.readthedocs.io/en/latest/api.html
總結
以上是生活随笔為你收集整理的python pyquery.get()_Python爬虫之PyQuery使用(六)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: go 默认http版本_【每日一库】超赞
- 下一篇: 软件测试用例_大话软件测试用例要素