學習PyQuery庫

學習PyQuery庫

好了,又是學習的時光啦,今天學習pyquery 來進行網頁解析html

常規導入模塊(PyQuery庫中的pyquery類)
from pyquery import PyQuery as pqpython

一般使用url初始化
doc = pq(url='http://www.baidu.com')瀏覽器

文件初始化
doc = pq(filename='demo.html')工具

基本CSS選擇器的使用,以起點中文網的爲例子
doc = pq(url='https://www.qidian.com/free/all')學習

下面來獲取小說名字信息
1.打開瀏覽器,進入要分析的網頁
2.F12開發人員調試工具
enter description here
3.進行元素檢查
4.定位到爬取節點指定位置
5.分析一下 咱們本身寫 CSS選擇器方法url

id 使用的是# class 使用的是英文句號 空格表明 層級關係
enter description here調試

此時咱們先使用語句來獲取頁面中的全部<h4>的元素
doc = pq(url='https://www.qidian.com/free/all')
a = doc('h4').items()
for i in a:
print(i)code

迭代出所篩選出來的結果
enter description herehtm

但也會遇到上面的狀況,共同是h4元素的,但篩選到咱們不想要的數據。圖片

這時咱們能夠採用往上級找,直到找到有區別的元素。
enter description here

doc = pq(url='https://www.qidian.com/free/all')
a = doc('.book-mid-info h4').items()
for i in a:
    print(i)

獲得了期待的數據!!!(要仍是有那前兩個,說明還定位不夠準確,再往上一層走)
enter description here

咱們若是要獲取簡介內容,咱們能夠下圖方式代碼 獲取子節點(記得find方法是子孫節點)
enter description here

但上圖也沒抓取咱們特別想要的信息呀,這時發現 咱們所指定的解析底下有不少li標籤 裏標籤底下又有不少內容,因此此時還得繼續往下解析。
enter description here

首先咱們用children方法查找子節點,而後使用items方法來獲得一個生成器,將數據遍歷打印或者添加到列表中,方便數據存儲和最終結果打印。

此時咱們來獲取一下小說的圖片連接試試 利用attrs方法 來返回屬性字典 進一步獲取value值。
enter description here

怎麼來抓取解析節點 理清層級關係 利用好 F12來分析就好啦!!!

總結一下:
id 使用的是# class 使用的是英文句號 空格表明 層級關係
find()方法是遍歷子孫節點
chlidren()方法是獲取節點的子節點(看上面實例也支持往下繼續選擇節點)
parent()方法是獲取節點的父節點
parents()方法是獲取節點的全部父節點(下面實例從全部祖先節點中挑選出符合條件的節點)

parent = items.parents('.wrap')
print(parent)

siblings()方法是獲取兄弟節點(下面實例從全部兄弟節點中挑選出符合條件的節點)

from pyquery import PyQuery as pq
doc = pq(html)
li = doc('.list .item-0.active')
print(li.siblings('.active'))

items()方法是用於遍歷每個節點結果
attr()方法是返回屬性字典 進一步獲取value值
text()方法是獲取節點內部文本(Tips:當內容中先後出現\n 空格 可配合strip()來刪除)

也能夠百度學習下僞類選擇器來獲取節點數據,並且右鍵就能copy出表達式!!!
enter description here

相關文章
相關標籤/搜索