一、xpath解析原理:
二、環境的安裝:
三、如何例項化乙個etree物件from lxml.html import etree
1、將本地的html文件中的原始碼資料載入到etree物件中
etree.parse(filepath)
2、可以將從網際網路上獲取的原始碼資料載入到該物件中
etree.html('page_text')
3、xpath('xpath表示式')
四、xpath表示式
乙個斜槓 / 表示的是從根節點開始定位,表示的是乙個層級
兩個斜槓 // 表示的是多個層級,可以表示從任意位置開始定位
屬性定位:
/div[@class="song
"] #
表示取到class為song的div,其中@是固定寫法#格式
tag[@attrname="
attrvallue
"]
索引定位:
//div[@class="song
"]/p[3]
#表示取到class為song的div下的第三個p標籤
#注意:這裡的索引是從1開始的
取文字:
/text() #獲取的是標籤中直系的文字內容
xpath(
'//div[@class="tang"]//li[5]/a/text()
')[0]
#表示取到class為tang的div下的第五個li標籤中的a標籤的文字內容,因為型別是列表,需要加上[0]獲取到最終的文字
//text() #
獲取標籤中非直系的文字內容(所有的內容)
取屬性:
#格式/@attrname
//div[@class="
tang
"]/img/@src
#表示獲取到class為tang的div下的img標籤的src屬性
#爬取58二手房中的**資訊
import
requests
from lxml.html import
etree
if__name__ == '
__main__':
headers =
#爬取到頁面原始碼資料
url = '
'page_text = requests.get(url=url,headers=headers).text
#資料解析
tree =etree.html(page_text)
#儲存的就是li標籤物件
li_list = tree.xpath('
//ul[@class="house-list-wrap"]/li')
fp = open('
58.txt
','w
',encoding='
utf-8')
for li in
li_list:
#區域性解析
title = li.xpath('
./div[2]/h2/a/text()
')[0] #
.表示解析的原始碼的參照標籤
(title)
fp.write(title+'
\n')
Linux最基礎,最常用命令
1,檢視埠號 ps ef grep tomcat nginx 2,強制結束程序 kill s 9 查到的埠號 或直接 kill 9 查到的埠號 3,啟動tomcat 進入tomcat下的bin目錄 啟動 startup.sh 或 sh startup.sh 關閉 shutdown.sh 或 sh s...
linux最基礎,最最常用的命令
cd 返回當前使用者的根目錄 代表當前目錄 代表上一級目錄 mv 原檔名 重新命名後的檔名 cp test haha 複製 讀取test檔案全部 複製到 haha 方法一 cp r test hah 複製 讀取test檔案全部 複製到 haha 方法二 su 切換使用者 passdwd 修改當前使用...
VS2010 VS2017最常用且實用的外掛程式分享
生成及錯誤智慧型提示工具,對於新手來說是一款很不錯的產品,能大大提高 質量。個人最喜歡的就是linq 清理未使用的引用 自動生成類及屬性等。寫 時,如果多層巢狀後,很容易找不到哪個 對應,這個工具可以很好的幫你解決,會在兩個大括號之間加條虛線連線。此工具對使用vs連sqlserver開發的同學很實用...