? ?????????????????????????????Pyquery簡(jiǎn)介及簡(jiǎn)單使用
介紹:
你好泣特,我相信在你看到這篇文章的時(shí)候分冈,你已經(jīng)不是一個(gè)爬蟲小白了宅粥,所以關(guān)于一些爬蟲的基礎(chǔ)知識(shí)諸如requests之類的我就不多敘述了,直接上干貨代兵。Pyquery是一個(gè)與BeautifulSoup類似的網(wǎng)頁(yè)解析庫(kù),再說(shuō)之前如果你是小白爷狈,不知道怎么安裝的話我再
這里提供一種最常用的方式:在配置好pip的環(huán)境變量的情況下pip3 install?Pyquery植影,回車即可。如果不知道環(huán)境變量怎么配置涎永,那么大家可以自己百度一下思币,也不難,安裝好之后我們就可以使用該庫(kù)了羡微。
Pyquery 與jquery谷饿?
如果你熟悉或者了解jQuery,那么使用這個(gè)庫(kù)將會(huì)非常的方便妈倔,因?yàn)檎缢拿Q一樣博投,它與jQuery有著千絲萬(wàn)縷的關(guān)系,說(shuō)白了就是你可以使用web, css的選擇器來(lái)解析選擇我們所需要的網(wǎng)頁(yè)內(nèi)容启涯。它與BeautifulSoup中提供的select()方法非常類似贬堵。
說(shuō)在前面:
在演示之前呢,我想大家一般都會(huì)使用pycharm來(lái)編輯结洼,在這里我推薦大家可以使用一個(gè)叫做jupyter的編輯器黎做,
它也是十分方便的,你只需要在cmd里面pip3 install jupyter然后等待安裝完成即可松忍,提示:安裝過(guò)程肯會(huì)很慢蒸殿,在這里大家可以百度使用一些國(guó)內(nèi)比如清華等的一些資源進(jìn)行安裝,這樣會(huì)快很多。大家可以自行百度pip安裝過(guò)慢宏所,我想可以找到一些國(guó)內(nèi)的地址的酥艳。在安裝好之后,cmd運(yùn)行jupyter notebook即可出現(xiàn)一個(gè)編輯器窗口爬骤〕涫可以file新建一個(gè)python3文件,那么就和pycharm一樣去編輯代碼即可霞玄。方便快捷骤铃。
實(shí)例演示(建議實(shí)踐):
初始化:
首先導(dǎo)入我們需要的包,和pycharm一樣坷剧。提示:(tab鍵會(huì)有提示惰爬,但是通常要等一小會(huì)兒才會(huì)出來(lái),
shift +enter鍵可以及時(shí)的查看運(yùn)行結(jié)果哦)
靜態(tài)初始化:
咱們測(cè)試的html片段惫企,大家要從基礎(chǔ)學(xué)起嘛
接著傳入html,然后print一下撕瞧,當(dāng)然你也可以直接doc("li")shift +enter,也可以出現(xiàn)結(jié)果狞尔,具體大家自己選擇丛版,所以jupyter還是很方便的,它還可以制作網(wǎng)頁(yè)P(yáng)PT等一些功能沪么,大家可以自己了解硼婿。
在這里我們傳入html以后,就像jQuery一樣選擇li標(biāo)簽禽车,之后大家可以看結(jié)果寇漫,所有符合條件的li都被選擇出來(lái)了。
查看一下類型:
URL初始化:
文件初始化:
基本CSS選擇器
id(#),class (.)子孫逸月,直接后代栓撞,具體的話大家可以自己查找把。注意:class可以有多個(gè)哦比如<p class='class1 class2'></p>那么p標(biāo)簽就會(huì)對(duì)應(yīng)著兩個(gè)class了碗硬,大家要注意
1.這里查詢class='item_0',對(duì)應(yīng)輸出的結(jié)果如下:
2.ul>li:直接后代選擇器瓤湘,也就是ul之下的所有直接后代li,輸出結(jié)果如下:
查找元素
1.find()查找所有子元素
運(yùn)行結(jié)果:
注意到都是pyquery.pyquery.PyQuery對(duì)象恩尾,那么我們還可以嵌套來(lái)進(jìn)行查詢弛说,舉個(gè)例子:
所以我們可以看到這個(gè)庫(kù)還是非常方便的,也很靈活,在此查看type:
所以還可以在嵌套翰意,具體期待大家實(shí)戰(zhàn)
2.children()查找直接元素
大家注意與find()對(duì)比一般使用find()
查找父元素
1.parent()方法查找直接父元素:
2.parents()方法查找祖先父元素:
parents()還可以在傳入一個(gè)參數(shù)木人,那么就會(huì)進(jìn)行又一次的撒選信柿,所以下面就只有一個(gè)了(wrap)
查找兄弟元素
注意'.list .item_0.active',list與.item_0.active中間有一個(gè)空格(css子孫選擇器)醒第,.item_0.active中間沒(méi)有空格渔嚷,代表并列關(guān)系。運(yùn)行結(jié)果:
siblings()兄弟元素
同樣也可以進(jìn)行再次選擇稠曼,傳入?yún)?shù):
遍歷
單個(gè)元素
直接輸出即可
多個(gè)元素
使用items()方法,返回一個(gè)迭代器形病,使用for in遍歷:
獲取信息
獲取屬性
獲取文本
text()方法:
獲取html
DOM操作
addClass() 與removeclass(),增加與刪除class與jquery DOM操作差不多
attr,css
????????????????????????????????????????????????????????總結(jié)
今天就將這么多蒲列,大家如果還想了解更多的話就自己去當(dāng)一個(gè)百度工程師吧窒朋,如有錯(cuò)誤搀罢,請(qǐng)指正蝗岖,謝謝!