0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python解析庫的使用--PyQuery

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-22 16:07 ? 次閱讀

PyQuery介紹與安裝

PyQuery庫也是一個非常強(qiáng)大又靈活的網(wǎng)頁解析庫,如果你有前端開發(fā)經(jīng)驗(yàn)的,都應(yīng)該接觸過jQuery,那么PyQuery就是你非常絕佳的選擇。

PyQuery 是 Python 仿照 jQuery 的嚴(yán)格實(shí)現(xiàn)。

語法與 jQuery 幾乎完全相同,所以不用再去費(fèi)心去記一些奇怪的方法了。

官網(wǎng)地址:https://pyquery.readthedocs.io/en/latest/

  • PyQuery的安裝
pip install pyquery
  • URL初始化:
# 推薦使用requests爬取信息
from pyquery import PyQuery as pq
import requests
res = requests.get("http://www.baidu.com")
res.encoding = "utf-8" # 因?yàn)樵幋a為ISO-8859-1
#print(res.text)
doc = pq(res.text)
print(doc("title"))

PyQuery的使用

首先創(chuàng)建一個html文件:my.html 用于測試pyquery的解析效果


我的常用鏈接

使用pyquery解析my.html


# 讀取my.html的文件內(nèi)容,并使用pyquery來查找節(jié)點(diǎn)
from pyquery import PyQuery as pq

doc = pq(filename='my.html',encoding="utf-8")

print(doc('title')) #通過html標(biāo)簽名獲取元素節(jié)點(diǎn)
print(doc('#hid'))  #獲取id屬性值為hid的元素節(jié)點(diǎn)
print(doc('.bb'))  #獲取class屬性值為bb的元素節(jié)點(diǎn)
print(doc('title,h3')) #選擇符組的使用

print(doc("ul li.shop a")) #關(guān)聯(lián)選擇符的使用

print(doc("a")) #獲取所有a
print(doc("a:first")) #獲取第一個a
print(doc("a:last")) #獲取最后一個a
print(doc("a:lt(2)")) #獲取前連個a
print(doc("a:eq(2)")) #獲取索引位置2的a(第三個)

print(doc('a[)) #獲取指定屬性值的節(jié)點(diǎn)

print("="*60)
# 節(jié)點(diǎn)的二次篩選:

lilist = doc("ul li") #獲取ul中所有的li
print(type(lilist)) #
print(lilist.find("a.bb")) #在結(jié)果的基礎(chǔ)上再次查找
print(lilist.children("a.bb")) #在結(jié)果的基礎(chǔ)上再次查找

print(doc("a.bb").parent()) #獲取指定元素的直接父節(jié)點(diǎn)
#print(doc("a.bb").parents()) #獲取指定元素的所有父節(jié)點(diǎn)
print(doc("a.bb").parent().siblings()) #獲取兄弟節(jié)點(diǎn)

print("="*60)
# 遍歷:

alist = doc("a")
for a in alist.items():
    print(a.attr.href)
    #print(a.attr('href')) #同上
    print(a.text())  #獲取內(nèi)容
    print(a.html()) 




審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 節(jié)點(diǎn)
    +關(guān)注

    關(guān)注

    0

    文章

    212

    瀏覽量

    24303
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    918

    瀏覽量

    54658
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84107
收藏 人收藏

    評論

    相關(guān)推薦

    深度學(xué)習(xí)常用的Python

    深度學(xué)習(xí)作為人工智能的一個重要分支,通過模擬人類大腦中的神經(jīng)網(wǎng)絡(luò)來解決復(fù)雜問題。Python作為一種流行的編程語言,憑借其簡潔的語法和豐富的支持,成為了深度學(xué)習(xí)研究和應(yīng)用的首選工具。本文將深入探討
    的頭像 發(fā)表于 07-03 16:04 ?406次閱讀

    ESP32下如何加自定義Python?

    我看官方有提供Micropython的bin文件,但我想根據(jù)自己外設(shè)擴(kuò)充一下Python,這個應(yīng)該從哪里入手? 之前做過RTT系統(tǒng)的python擴(kuò)充,RTT有提供Micropyth
    發(fā)表于 06-18 06:27

    python解析netflow數(shù)據(jù)到csv的流程詳解

    本文主要講解了linux下通過tcpdump抓取netflow數(shù)據(jù)包,并將其導(dǎo)入到wireshark進(jìn)行解析,然后通過wireshark導(dǎo)出數(shù)據(jù)為json文件,再通過python腳本將其解析為csv文件以便做數(shù)據(jù)分析。
    的頭像 發(fā)表于 05-01 11:18 ?548次閱讀
    <b class='flag-5'>python</b><b class='flag-5'>解析</b>netflow數(shù)據(jù)到csv的流程詳解

    ArkTS語言基礎(chǔ)類-解析

    多線程并發(fā),支持Worker線程和宿主線程之間進(jìn)行通信,開發(fā)者需要主動創(chuàng)建和關(guān)閉Worker線程。 提供常見的[容器類增、刪、改、查]的能力。 提供XML、URL、URI構(gòu)造和解析的能力。 XML
    發(fā)表于 02-20 16:44

    phpy:PHP與Python互調(diào)用

    phpy 是識沃團(tuán)隊(duì)最新推出的開源項(xiàng)目,目標(biāo)是為 PHP 引入 Python 生態(tài),來彌補(bǔ) PHP 生態(tài)的空缺和不足。phpy 使得 PHP 可以調(diào)用所有 Python 的包。 包括當(dāng)下非常流行
    的頭像 發(fā)表于 12-12 10:43 ?864次閱讀
    phpy:PHP與<b class='flag-5'>Python</b>互調(diào)用<b class='flag-5'>庫</b>

    1000+常用Python一覽

    lxml,快速,易用、靈活的HTML和XML處理,功能超強(qiáng),在遇到有缺陷、不規(guī)范的xml時,Python自帶的xml處理器可能無法解析。報(bào)錯時,程序會嘗試再用lxml的修復(fù)模式解析
    的頭像 發(fā)表于 11-30 17:00 ?1004次閱讀

    python第三方有哪些

    Python 作為一門功能強(qiáng)大的編程語言,擁有豐富的第三方,幾乎覆蓋了各個領(lǐng)域的應(yīng)用。下面是一些常見且廣泛應(yīng)用的 Python 第三方的總結(jié),希望能為您提供幫助。 NumPy(Nu
    的頭像 發(fā)表于 11-29 14:31 ?1953次閱讀

    python中如何引入math

    Python中,要使用math,首先需要先引入它。mathPython的一個標(biāo)準(zhǔn),它提供了許多數(shù)學(xué)函數(shù)和常數(shù)。通過使用math
    的頭像 發(fā)表于 11-22 11:03 ?3497次閱讀

    如何應(yīng)用Python解決5個常見運(yùn)維問題?

    解析日志文件并提取有用信息是運(yùn)維工程師經(jīng)常要進(jìn)行的任務(wù)之一。使用 Python 腳本可以方便地實(shí)現(xiàn)這一操作。 在 Python 中,可以使用第三方 regex 來
    發(fā)表于 11-02 10:06 ?249次閱讀

    什么是pyquery?如何使用pyquery

    所講的解析xpath與Beautiful Soup比起來更加靈活與簡便,并且增加了添加類和移除節(jié)點(diǎn)的操作,這些操作有時會為提取信息時帶來極大的便利。 使用pyquery 如果你對web有所了解,并且比較
    的頭像 發(fā)表于 10-31 14:40 ?400次閱讀
    什么是<b class='flag-5'>pyquery</b>?如何使用<b class='flag-5'>pyquery</b>

    Newspaper:用于提取和整理文章的python

    Newspaper 是一個很棒的python,用于提取和整理文章。 它有以下的優(yōu)點(diǎn): 多線程文章下載框架 識別新聞網(wǎng)址 從html提取文本 從html提取頂部圖像 從html提取所有圖像 從文本
    的頭像 發(fā)表于 10-30 14:24 ?572次閱讀

    TinyDB :一個純Python編寫的輕量級數(shù)據(jù)

    TinyDB 是一個純 Python 編寫的輕量級數(shù)據(jù),一共只有1800行代碼,沒有外部依賴項(xiàng)。 TinyDB的目標(biāo)是降低小型 Python 應(yīng)用程序使用數(shù)據(jù)的難度,對于一些簡單程
    的頭像 發(fā)表于 10-21 10:22 ?755次閱讀

    Bulbea:用于股票市場預(yù)測和建模的Python

    Bulbea 是一個基于深度學(xué)習(xí)開發(fā)的,用于股票市場預(yù)測和建模的Python。 Bulbea 自帶了不少可用于股票深度學(xué)習(xí)訓(xùn)練及測試的API,并且易于對數(shù)據(jù)進(jìn)行擴(kuò)展和延申,構(gòu)建屬于我們自己的數(shù)據(jù)
    的頭像 發(fā)表于 10-17 11:01 ?417次閱讀
    Bulbea:用于股票市場預(yù)測和建模的<b class='flag-5'>Python</b><b class='flag-5'>庫</b>

    如何使用Python和PinPong控制Arduino

    與傳感器和其他物理設(shè)備集成的應(yīng)用程序。如果您已經(jīng)掌握了Python的基礎(chǔ)知識,那么您可以通過使用Python來控制Arduino來入門。本文目的主要是向您展示如何使用PinPong通過Pyt
    的頭像 發(fā)表于 10-13 10:59 ?779次閱讀
    如何使用<b class='flag-5'>Python</b>和PinPong<b class='flag-5'>庫</b>控制Arduino

    Python中oloredlogs的使用

    coloredlogs介紹 coloredlogs是一個Python,它允許開發(fā)人員在控制臺打印彩色日志。這個的主要優(yōu)點(diǎn)是它可以很容易地改變?nèi)罩鞠⒌念伾瑥亩谷罩靖子陂喿x和理解。這對
    的頭像 發(fā)表于 10-07 11:28 ?721次閱讀
    <b class='flag-5'>Python</b><b class='flag-5'>庫</b>中oloredlogs的使用