【Python】爬蟲之使用etree進行xpath元素定位


操作系統:macOS Mojave

python版本:python3.7

依賴庫:requests、etree

關於依賴庫的安裝,建議使用anaconda+pycharm的組合方式,每個依賴庫的安裝又會基於其他依賴包的安裝,這時候anaconda的作用便是自動幫你下載安裝對應的依賴,不需要人工去查找,類似於java maven的三方庫管理,python常見IDE就是pycharm了。pycharm怎么關聯anaconda的依賴包呢?請看下圖設置:

0-0、打開pycharm-preferences,進入設置

0-1、選擇anaconda所在的python執行文件

 

 

1、網站源代碼獲取及轉換

import requests
from lxml import etree

r=requests.get("http://www.baidu.com")
#print ("狀態碼:",r.status_code)
#print ("網站源代碼",r.text)
#print ("頭部請求",r.headers)

html = etree.HTML(r.text)  # 調用HTML類進行初始化
etreeResult = etree.tostring(html) # 將其轉化為字符串類型,etree類型
strResult=etreeResult.decode('utf-8') #轉化為utf-8編碼格式,此時已是str類型

2、節點、屬性值、內容的獲取

語法如下:

示例代碼:

import requests
from lxml import etree

r=requests.get("http://www.baidu.com")
html = etree.HTML(r.text)  # 調用HTML類進行初始化

resultAll = html.xpath('//*')    #選取所有節點
#print("獲取所有節點:",resultAll)
resultDivAll = html.xpath('//div')    #選取div子孫節點
#print("獲取div所有節點:",resultDivAll)
resultDiv_img = html.xpath('//div/img')    #選取div下img節點
#print("獲取div節點下img節點:",resultDiv_img)
resultDiv_imgSrc = html.xpath('//div/img/@src')    #獲取div_img的src屬性值
print("獲取div節點下img的src值:",resultDiv_imgSrc)

對應輸出的值:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM