盤點一個pyquery庫選擇器提取案例
回復“資源”即可獲贈Python學習資料
大家好,我是皮皮。
一、前言
前幾天在Python白銀群有個叫【手中的流沙】的粉絲問了一道關于pyquery選擇器提取的問題,如下圖所示。

就像這樣:

原網(wǎng)頁的信息如下圖所示:

實現(xiàn)過程
這里【甯同學】給了一份代碼,如下所示:
from?pyquery?import?PyQuery?as?pq
headers?=?{
????'Accept-Language':?'zh-CN,zh;q=0.9',
????'Cache-Control':?'max-age=0',
????'Upgrade-Insecure-Requests':?'1',
????'User-Agent':?'Mozilla/5.0?(Windows?NT?10.0;?WOW64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/78.0.3904.108?Safari/537.36'
}
html?=?pq(url='https://www.cditv.cn/list-3894-1.html',?headers=headers)
doc?=?pq(html)
li?=?doc('div.style-type3?>?div:gt(0)?>?ul?>?li.item?>?ul?>?li.list-item').items()
for?i?in?li:
????info?=?{
????????'city':?i.text().split('\n\n\n')
????}
????print(info)
代碼運行之后,結果如下圖所示:

確實一步到位了,很強!原來pq可以直接請求網(wǎng)頁,確實也省事了。主要是那個css構造還是需要點時間和精力的。
這個地方也還可以使用xpath提取來實現(xiàn),代碼如下:
import?requests
from?lxml?import?etree
res?=?requests.get(url='https://www.cditv.cn/list-3894-1.html',?headers=headers)
res.encoding?=?res.apparent_encoding
html?=?etree.HTML(res.text)
li_lists?=?html.xpath('/html/body/div[1]/div[2]/div[2]/div[2]/ul/li')
print(len(li_lists))
for?li?in?li_lists:
????info?=?li.xpath('./ul//li//text()')
????#?shi?=?li.xpath('./ul//li/h4/text()')
????#?qu?=?li.xpath('./ul//li/strong/text()')
????#?jiedao?=?li.xpath('./ul//li/br/text()')
????print(info)
運行之后,結果如下圖所示:

當然了,你還可以使用re正則表達式和bs4來提取,這個網(wǎng)頁并不難,用來練手還是不錯的。
三、總結
大家好,我是皮皮。這篇文章主要盤點一個pyquery庫選擇器提取案例!如果你還有其他方法,也歡迎大家積極嘗試,一起學習,記得分享給我哦。
最后感謝粉絲【手中的流沙】提問,感謝【甯同學】、【dcpeng】在運行過程中給出的思路和代碼建議,感謝粉絲【月神】、【莊大】等人參與學習交流。
小伙伴們,快快用實踐一下吧!如果在學習過程中,有遇到任何問題,歡迎加我好友,我拉你進Python學習交流群共同探討學習。
-------------------?End?-------------------
往期精彩文章推薦:

歡迎大家點贊,留言,轉發(fā),轉載,感謝大家的相伴與支持
想加入Python學習群請在后臺回復【入群】
萬水千山總是情,點個【在看】行不行
評論
圖片
表情
