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

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

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

python解析庫的使用--PyQuery

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

PyQuery介紹與安裝

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

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

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

官網(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" # 因為原編碼為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é)點
from pyquery import PyQuery as pq

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

print(doc('title')) #通過html標簽名獲取元素節(jié)點
print(doc('#hid'))  #獲取id屬性值為hid的元素節(jié)點
print(doc('.bb'))  #獲取class屬性值為bb的元素節(jié)點
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é)點

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

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é)點
#print(doc("a.bb").parents()) #獲取指定元素的所有父節(jié)點
print(doc("a.bb").parent().siblings()) #獲取兄弟節(jié)點

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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 節(jié)點
    +關(guān)注

    關(guān)注

    0

    文章

    216

    瀏覽量

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

    關(guān)注

    6

    文章

    921

    瀏覽量

    54716
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4759

    瀏覽量

    84303
收藏 人收藏

    評論

    相關(guān)推薦

    Python解析:通過實現(xiàn)代理請求與數(shù)據(jù)抓取

    Python中,有多個可以幫助你實現(xiàn)代理請求和數(shù)據(jù)抓取。這些提供了豐富的功能和靈活的API,使得你可以輕松地發(fā)送HTTP請求、處理響應、解析HTML/XML/JSON數(shù)據(jù),以及進
    的頭像 發(fā)表于 10-24 07:54 ?64次閱讀

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件,它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發(fā)表于 07-16 10:38 ?702次閱讀

    深度學習常用的Python

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

    ESP32下如何加自定義Python?

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

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

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

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

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

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

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

    1000+常用Python一覽

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

    python第三方有哪些

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

    python窗口圖形界面編程

    ,幫助開發(fā)者快速構(gòu)建具有良好用戶體驗的窗口應用程序。 在Python的GUI編程領(lǐng)域,最常用的是Tkinter。Tkinter是Python的標準GUI
    的頭像 發(fā)表于 11-22 14:23 ?786次閱讀

    python寫完程序之后怎么運行

    Python是一門簡潔、易學的編程語言,被廣泛應用于數(shù)據(jù)分析、人工智能等領(lǐng)域。在學習Python編程的過程中,了解程序的運行機制是至關(guān)重要的。本文將詳盡解析Python程序的運行過程,
    的頭像 發(fā)表于 11-22 11:10 ?910次閱讀

    python中如何引入math

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

    如何應用Python解決5個常見運維問題?

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

    什么是pyquery?如何使用pyquery

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

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

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