Python 之lxml解析模組

2022-06-08 04:21:08 字數 3265 閱讀 1698

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 import

etree

#讀取外部檔案 hello.html

html = etree.parse('

./hello.html')

result = etree.tostring(html, pretty_print=true)

print(result)

3、html內容

@1、獲取所有的標籤

from lxml import

etree

html = etree.parse('

hello.html')

print type(html) #

顯示etree.parse() 返回型別

result = html.xpath('

//li')

print result #

列印標籤的元素集合

print

len(result)

print

type(result)

print

type(result[0])

結果是'

lxml.etree._elementtree

'>[

, , , , ]5'

list

'>

'lxml.etree._element

'>

@2、繼續獲取標籤的所有class屬性

from lxml import

etree

html = etree.parse('

hello.html')

result = html.xpath('

//li/@class')

print

result

結果是[

'item-0

', '

item-1

', '

item-inactive

', '

item-1

', '

item-0

']

@3、繼續獲取標籤下hreflink1.html標籤

from lxml import

etree

html = etree.parse('

hello.html')

result = html.xpath('

//li/a[@href="link1.html"]')

print

result

執行結果

@4、獲取標籤下的所有標籤

from lxml import

etree

html = etree.parse('

hello.html')

#result = html.xpath('//li/span')

#注意這麼寫是不對的:

#因為 / 是用來獲取子元素的,而 並不是 的子元素,所以,要用雙斜槓

result = html.xpath('

//li//span')

print

result

執行結果

@5、獲取標籤下的標籤裡的所有 class

from lxml import

etree

html = etree.parse('

hello.html')

result = html.xpath('

//li/a//@class')

print

result

執行結果['

blod

']

@6、獲取最後乙個的 href

from lxml import

etree

html = etree.parse('

hello.html')

result = html.xpath('

//li[last()]/a/@href')

#謂語 [last()] 可以找到最後乙個元素

print

result

執行結果['

link5.html

']

@7、獲取倒數第二個元素的內容

from lxml import

etree

html = etree.parse('

hello.html')

result = html.xpath('

//li[last()-1]/a')

#text 方法可以獲取元素內容

print

result[0].text

執行結果

fourth item

@8、獲取class值為bold的標籤名

from lxml import

etree

html = etree.parse('

hello.html')

result = html.xpath('

//*[@class="bold"]')

#tag方法可以獲取標籤名

print

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物件可...