xpath即為xml路徑語言(xml path language),它是一種用來確定xml文件中某部分位置的計算機語言。
選取節點:
xpath使用路徑表示式來選取xml文件中的節點或者節點集。
一些語法
表示式描述示例結果/
選取此節點的所有子節點
/html
選取html下的所有子節點(注意:只能是子節點,不能是孫節點。且必須從根節點開始)
//從全域性節點中選擇節點,隨便哪個位置
//div
從全域性節點中找到所有的div節點
@選取某個節點的屬性
//div[@id]
選擇所有擁有id屬性的div節點
.選取當前節點
//head/meta[./@class]
當前meta節點的所有class屬性
. .選取當前節點的父節點
//meta[./@class]
當前meta節點的父節點的所有class屬性
謂語:
謂語用來查詢某個特定的節點或者包含某個指定的值的節點,被嵌在方括號中。
路徑表示式
描述//head/meta[1]
選取head下的第乙個meta子元素
//head/meta[last()]
選取head下的倒數第二個meta元素
//head/meta[position() < 3]
選取head下前兩個meta元素
//head/meta[@class]
選取擁有class屬性的meta元素
//book[@price=10]
選取所有屬性price=10的bookyuansu
萬用字元
萬用字元*@*
node()
描述匹配任意位元組
匹配節點中的任何屬性
匹配任何型別的節點
示例//head/*
//head/@*
結果選取head下的所有子節點
選取所有帶有屬性的head元素
選取多個路徑:
通過在路徑表示式中使用「|」運算子,可以選取若干個路徑。
//head/meta |
//body//li
#選取所有head元素下的meta元素以及body元素下的所有li元素
運算子
參考**
不明白可自行去維基百科搜尋
要注意的知識點
1,/ 和 // 的區別:/ 代表只獲取直接子節點。 // 獲取子孫節點。
2,contains:有的時候某個屬性中包含了多個值,那麼就可以使用contains
函式。示例**如下:
//div[contains(@class,'job_detail')]
3,謂詞中的下標是從1開始的,不是從0開始的。
lxml是乙個html/xml的解析器,主要的功能是如何解析和提取 html/xml資料。
基本使用
我們可以利用他來解析html**,並且在解析html**的時候,如果html**不規範,他會自動的進行補全。示例**如下:
from lxml import etree
test =
""""""
htmlelement = etree.html(test)
print
(etree.tostring(htmlelement,encoding=
'utf-8'
).decode(
'utf-8'
))
利用etree.parse()方法解析html檔案。示例**如下:
from lxml import etree
#讀取renren.html
html = etree.parse(
'renren.html'
)print
(etree.tostring(html,encoding=
'utf-8'
).decode(
'utf-8'
))
這個函式預設使用的是xml
解析器,所以如果碰到一些不規範的html
**的時候就會解析錯誤,這個時候就要自己建立html
解析器。
from lxml import etree
parse = etree.htmlparser(encoding=
'utf-8'
)htmlelement = etree.parse(
"lagou.html"
,parser=parse)
print
(etree.tostring(htmlelement,encoding=
'utf-8'
).decode(
'utf-8'
))
由於某些原因就先到這裡,後面繼續。 學習爬蟲第五天 xpath
xpath是 在html xml 檔中查詢資訊的語 可 來在html xml 檔中對元素和屬性進 遍歷 文件 xpath介紹 xml html 概念 每個xml的標籤我們都稱之為節點。示例 hello world juran 2019 定義 xpath使 路徑表示式來選取xml 檔中的接待或者節點集...
Python學習第五天
1 關於print,使用print方法列印多個表示式也是可行的 print age 12 age 12 2 別名,如果需要引用的方法名出現重複時可以使用別名 from math import sqrt as foobar 3 多個賦值操作可以同時進行 x,y,z 1,2,3 print x,y,z ...
第五天學習python
這其實也不是一天學習的,而是週末和周一一起的。週末學習了如何建立自己的module,記憶如何使用dir 函式。周一初步學習第九章。資料結構。python中主要有三種內建資料結構 列表,元組,字典。list是處理一組有序專案的資料結構,在每個專案中用逗號隔開。列表中的專案包括在方括號中,乙個列表建立之...