PyQuery模塊

原文連接:http://www.nnzhp.cn/archives/630

PyQuery模塊也是一個(gè)解析html的一個(gè)模塊滔悉,它和Beautiful Soup用起來(lái)差不多醋安,它是jquery實(shí)現(xiàn)的借杰,和jquery語(yǔ)法差不多斩箫,會(huì)用jquery的人用起來(lái)就比較方便了里伯。

Pyquery需要依賴(lài)lxml模塊含思,不裝的話崎弃,使用會(huì)報(bào)錯(cuò)。

安裝

pip install lxml
pip install pyquery

解析html的3種方式

from pyquery import PyQuery
html = """
<html><head><title>BestTest</title></head>
<body>
<div>
<p class="content">最專(zhuān)業(yè)的軟件測(cè)試培訓(xùn)
<a  class="link" id="link1"><!--首頁(yè)--></a>,
<a  class="link" id="link2">BestTest性能測(cè)試</a> and
<a  class="link" id="link3" target="_blank">BestTest自動(dòng)化測(cè)試</a>;
課程詳情請(qǐng)點(diǎn)擊上面的鏈接.</p>
<p class="content">.這是廣告植入.</p>
<p class="title">BestTest is best</p>
</div>
</body>
</html>
"""
# 解析html的3種方式
doc = PyQuery(url='http://www.nnzhp.cn') #指定url
doc2 = PyQuery(html) #指定html字符串
doc3 = PyQuery(filename='index.html') #指定文件
print(doc)
print(doc2)
print(doc3)

css選擇器

css在bs模塊里面也用過(guò)含潘,用法差不多饲做。具體如下

# css選擇器
print(doc2('.link')) #通過(guò)class
print(doc2('#link1')) #通過(guò)id
print(doc2('.content,#link1')) #找到所有class為content和id為link1的
print(doc2('.content #link1')) #在content下面找到id為link1的元素
print(doc2('a'))#找到所有的a標(biāo)簽
print(doc2('[href]'))#找到所有帶有href屬性的元素
print(doc2('a[target=_blank]')#找到a標(biāo)簽下面target為_(kāi)blank的

常用方法

eq方法,獲取第幾個(gè)元素
 
a_tags = doc2('a')
print(a_tags.eq(0))#a標(biāo)簽里面第一個(gè)
print(a_tags.eq(1))#a標(biāo)簽里面第二個(gè)
 
# items()
    #如果找到多個(gè)元素的話遏弱,想循環(huán)取元素的話盆均,就得用.items()方法,items就是為了循環(huán)用的
a_tag = doc2('a')
for a in a_tag.items():
    print(a.text())

# text() 腾窝、html()
#text()方法是獲取元素里面的文字的缀踪,html()是獲取元素的html
 
a=doc2('.content')
print(a.html()) #html格式的
print(a.text()) #只有里面的文字
 
#find方法,查找元素
 
print(doc2.find('p').find('a'))#從所有的p標(biāo)簽里面找到a標(biāo)簽
print(doc2.find('p'))#找到所有的p標(biāo)簽
print(doc2.find('.content'))#找到所有class為content的
 
#filter方法虹脯,用來(lái)篩選
print(doc2.find('a').filter('#link1')) #先找到a標(biāo)簽驴娃,然后從a標(biāo)簽里面篩選出來(lái)id為link1的
 
#attr方法,獲取屬性
 
print(doc2('#link1').attr(('href')))#獲取id為link1的href的屬性值

個(gè)人新增

In [103]: html='''<a  class="a1_test" id="link1">home</a>,
   .....: <a  class="a2_test test" id="link2">BestTest</a>
   .....: <div class="div_test">
   .....: <div>div test</div>
   .....: <span>span test1</span>
   .....: <span>span test2</span>
   .....: </div>
   .....: '''
In [104]: doc=PyQuery(html)

對(duì)于class有多個(gè)屬性的選擇

In [107]: doc('.a2_test.test')
Out[107]: [<a#link2.a2_test.test>]

標(biāo)簽嵌套獲取(子標(biāo)簽)

In [110]: doc('.div_test > div')
Out[110]: [<div>]

In [111]: doc('.div_test > div').text()
Out[111]: 'div test'

標(biāo)簽嵌套有相同的標(biāo)簽(子標(biāo)簽)

In [112]: doc('.div_test > span')
Out[112]: [<span>, <span>]

In [113]: doc('.div_test > span').eq(0).text()
Out[113]: 'span test1'

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末循集,一起剝皮案震驚了整個(gè)濱河市唇敞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咒彤,老刑警劉巖疆柔,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異镶柱,居然都是意外死亡旷档,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén)歇拆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)鞋屈,“玉大人范咨,你說(shuō)我怎么就攤上這事〕П樱” “怎么了渠啊?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)权旷。 經(jīng)常有香客問(wèn)我替蛉,道長(zhǎng),這世上最難降的妖魔是什么拄氯? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任躲查,我火速辦了婚禮,結(jié)果婚禮上坤邪,老公的妹妹穿的比我還像新娘熙含。我一直安慰自己,他們只是感情好艇纺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著邮弹,像睡著了一般黔衡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腌乡,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天盟劫,我揣著相機(jī)與錄音,去河邊找鬼与纽。 笑死侣签,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的急迂。 我是一名探鬼主播影所,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼僚碎!你這毒婦竟也來(lái)了猴娩?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤勺阐,失蹤者是張志新(化名)和其女友劉穎卷中,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體渊抽,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蟆豫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了懒闷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片十减。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡栈幸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嫉称,到底是詐尸還是另有隱情侦镇,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布织阅,位于F島的核電站壳繁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏荔棉。R本人自食惡果不足惜闹炉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望润樱。 院中可真熱鬧渣触,春花似錦、人聲如沸壹若。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)店展。三九已至养篓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赂蕴,已是汗流浹背柳弄。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留概说,地道東北人碧注。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像糖赔,于是被迫代替她去往敵國(guó)和親萍丐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355