lxml 是 乙個html/xml的解析器,主要的功能是如何解析和提取 html/xml 資料。
一、lxml示例
1、初步
#使用 lxml 的 etree 庫
from lxml import
etree
text = '''
'''#
利用etree.html,將字串解析為html文件
html =etree.html(text)
#按字串序列化html文件
result =etree.tostring(html)
print(result)
結果
2、從檔案裡讀取內容
from lxml importetree
#讀取外部檔案 hello.html
html = etree.parse('
./hello.html')
result = etree.tostring(html, pretty_print=true)
print(result)
3、html內容
@1、獲取所有的標籤
from lxml importetree
html = etree.parse('
hello.html')
print type(html) #
顯示etree.parse() 返回型別
result = html.xpath('
//li')
print result #
列印標籤的元素集合
len(result)
type(result)
type(result[0])
結果是'
lxml.etree._elementtree
'>[
, , , , ]5'
list
'>
'lxml.etree._element
'>
@2、繼續獲取標籤的所有
class
屬性
from lxml importetree
html = etree.parse('
hello.html')
result = html.xpath('
//li/@class')
result
結果是[
'item-0
', '
item-1
', '
item-inactive
', '
item-1
', '
item-0
']
@3、繼續獲取標籤下
href
為link1.html
的標籤
from lxml importetree
html = etree.parse('
hello.html')
result = html.xpath('
//li/a[@href="link1.html"]')
result
執行結果
@4、獲取標籤下的所有
標籤
from lxml importetree
html = etree.parse('
hello.html')
#result = html.xpath('//li/span')
#注意這麼寫是不對的:
#因為 / 是用來獲取子元素的,而 並不是 的子元素,所以,要用雙斜槓
result = html.xpath('
//li//span')
result
執行結果
@5、獲取標籤下的
標籤裡的所有 class
from lxml importetree
html = etree.parse('
hello.html')
result = html.xpath('
//li/a//@class')
result
執行結果['
blod
']
@6、獲取最後乙個的
的 href
from lxml importetree
html = etree.parse('
hello.html')
result = html.xpath('
//li[last()]/a/@href')
#謂語 [last()] 可以找到最後乙個元素
result
執行結果['
link5.html
']
@7、獲取倒數第二個元素的內容
from lxml importetree
html = etree.parse('
hello.html')
result = html.xpath('
//li[last()-1]/a')
#text 方法可以獲取元素內容
result[0].text
執行結果
fourth item
@8、獲取class
值為bold
的標籤名
from lxml importetree
html = etree.parse('
hello.html')
result = html.xpath('
//*[@class="bold"]')
#tag方法可以獲取標籤名
result[0].tag
執行結果
span
python爬蟲網頁解析之lxml模組
windows系統下的安裝 方法一 pip3 install lxml pip3 install lxml 4.2.1 cp36 cp36m win amd64.whl 檔案所在的路徑 linux下安裝 方法一 pip3 install lxml 方法二 yum install y epel rel...
Python 之lxml解析庫
一 xpath常用規則 二 解析html檔案 from lxml import etree 讀取html檔案進行解析 defparse html file html etree.parse test.html parser etree.htmlparser print etree.tostring ...
Python之lxml模組的etree類的使用
lxml的安裝與etree類的匯入 將html字串轉化為element物件,且elment物件的方法 element物件的xptah方法 安裝方式 在終端cmd下利用pip命令安裝即可 保證網路暢通 pip install lxml element物件是xpath語法的使用物件,element物件可...