python contains类似函数_五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码)...
前言:
今天為大家?guī)淼膬?nèi)容,是五步教會(huì)你用python爬蟲神器PyQuery!(內(nèi)含詳細(xì)步驟和代碼),在這里還是要啰嗦下,為了有更好的觀賞性,大部分代碼用圖片的方式呈現(xiàn)出來!喜歡的話不忘點(diǎn)贊關(guān)注不迷路哦!
PyQuery庫(kù)官方文檔
- 初始化為PyQuery對(duì)象
- 常用的CCS選擇器
- 偽類選擇器
- 查找標(biāo)簽
- 獲取標(biāo)簽信息
初始化為PyQuery對(duì)象
相當(dāng)于BeautifulSoup庫(kù)的初識(shí)化方法,將html轉(zhuǎn)化為BeautifulSoup對(duì)象。
bsObj = BeautifulSoup(html, 'html.parser')PyQuery庫(kù)也要有自己的初始化。
1 將字符串初始化
from pyquery import PyQuery as pq#初始化為PyQuery對(duì)象doc = pq(html)print(type(doc))print(doc)返回
2 將html文件初始化
#filename參數(shù)為html文件路徑test_html = pq(filename = 'test.html')print(type(test_html))print(test_html)返回
3 對(duì)網(wǎng)址響應(yīng)進(jìn)行初始化
response = pq(url = 'https://www.baidu.com')print(type(response))print(response)返回
提示:接下來就是自行發(fā)揮了,具體操作很簡(jiǎn)單就不做多介紹了!
然后,接著往下看!
二、常用的CCS選擇器
打印id為container的標(biāo)簽
print(doc('#container'))print(type(doc('#container')))返回
打印class為object-1的標(biāo)簽
print(doc('.object-1'))返回
打印標(biāo)簽名為body的標(biāo)簽
print(doc('body'))返回
多種css選擇器使用
print(doc('html #container'))返回
三、偽類選擇器
偽類nth
返回
大法Python好玩contains
#找到含有Python的li標(biāo)簽print(pseudo_doc("li:contains('Python')"))#找到含有好的li標(biāo)簽print(pseudo_doc("li:contains('好')"))返回
Python好好好玩小編想說一句話:我是一名python開發(fā)工程師,整理了一套最新的python系統(tǒng)學(xué)習(xí)教程,包括從基礎(chǔ)的python腳本到web開發(fā)、爬蟲、數(shù)據(jù)分析、數(shù)據(jù)可視化、機(jī)器學(xué)習(xí),面試寶典,面試寶典,面試寶典。想要這些資料的可以關(guān)注小編,并在后臺(tái)私信小編:“07”即可領(lǐng)取四、查找標(biāo)簽
按照條件在Pyquery對(duì)象中查找符合條件的標(biāo)簽,類似于BeautifulSoup中的find方法。
打印id=container的標(biāo)簽
print(doc.find('#container'))返回
返回
2 子輩標(biāo)簽-children方法
#id=container的標(biāo)簽的子輩標(biāo)簽container = doc.find('#container')print(container.children())返回
3 父輩標(biāo)簽-parent方法
object_2 = doc.find('.object-2')print(object_2.parent())返回
4 兄弟標(biāo)簽-siblings方法
object_2 = doc.find('.object-2')print(object_2.siblings())返回
五、獲取標(biāo)簽的信息
定位到目標(biāo)標(biāo)簽后,我們需要標(biāo)簽內(nèi)部的文本或者屬性值,這時(shí)候需要進(jìn)行提取文本或?qū)傩灾挡僮?/p>
1 標(biāo)簽屬性值的提取
.attr() 傳入 標(biāo)簽的屬性名,返回屬性值
object_2 = doc.find('.object-2')print(object_2.attr('class'))返回
object-22 標(biāo)簽內(nèi)的文本
.text()
返回
簡(jiǎn)單好用的 PyQuery Hello World! Python 大法 好返回
Python Hello World! Python 大法 好tips:如果我只想獲得Hello World這個(gè),不想得到其他的文本,可以使用remove方法將li標(biāo)簽去掉,然后再使用text方法
container = docs.find('#container')container.remove('li')print(container.text())返回
Hello World!pyquery一些自定義的用法
訪問網(wǎng)址
PyQuery與BeautifulSoup對(duì)比,我們會(huì)發(fā)現(xiàn)PyQuery可以對(duì)網(wǎng)址發(fā)起請(qǐng)求。 比如
from pyquery import PyQueryPyQuery(url = 'https://www.baidu.com')opener參數(shù)
這是PyQuery對(duì)百度網(wǎng)址進(jìn)行請(qǐng)求,并將請(qǐng)求返回的響應(yīng)數(shù)據(jù)處理為PyQuery對(duì)象。一般pyquery庫(kù)會(huì)默認(rèn)調(diào)用urllib庫(kù),如果想使用selenium或者requests庫(kù),可以自定義PyQuery的opener參數(shù)。
opener參數(shù)作用是告訴pyquery用什么請(qǐng)求庫(kù)對(duì)網(wǎng)址發(fā)起請(qǐng)求。常見的請(qǐng)求庫(kù)如urllib、requests、selenium。這里我們自定義一個(gè)selenium的opener。
這時(shí)候我們就能對(duì)PyQuery對(duì)象進(jìn)行操作,提取有用的信息。具體請(qǐng)看上次的分享,如果想了解更多的功能,pyquery文檔寫的不怎么詳細(xì),好在基本跟jQuery功能吻合,我們?nèi)绻胗煤胮yquery,需要查看jQuery文檔。
cookies、headers
在requests用法中,一般為了訪問網(wǎng)址更加真實(shí),模仿成瀏覽器。一般我們需要傳入headers,必要的時(shí)候還需要傳入cookies參數(shù)。而pyquery庫(kù)就有這功能,也能偽裝瀏覽器。
讓你的selenium帶上pyquery功能
讓driver訪問的網(wǎng)址得到的網(wǎng)頁(yè)直接變?yōu)镻yQuery對(duì)象,更方便提取數(shù)據(jù)
返回
以上就是本文全部?jī)?nèi)容啦!
最后,小編想說一句話:我是一名python開發(fā)工程師,整理了一套最新的python系統(tǒng)學(xué)習(xí)教程,包括從基礎(chǔ)的python腳本到web開發(fā)、爬蟲、數(shù)據(jù)分析、數(shù)據(jù)可視化、機(jī)器學(xué)習(xí),面試寶典,面試寶典,面試寶典。想要這些資料的可以關(guān)注小編,并在后臺(tái)私信小編:“07”即可領(lǐng)取。
總結(jié)
以上是生活随笔為你收集整理的python contains类似函数_五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LPR利率下调的影响有哪些?房贷利率会下
- 下一篇: python 读取outlook_如何用