欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python操作lxml庫之基礎(chǔ)使用篇

 更新時(shí)間:2022年12月23日 11:14:13   作者:醉蕤  
lxml庫是python的第三方庫,安裝方式也是十分簡單,下面這篇文章主要給大家介紹了關(guān)于Python操作lxml庫之基礎(chǔ)使用篇的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、lxml庫概述

1、lxml庫介紹

lxml是XML和HTML的解析器,其主要功能是解析和提取XML和HTML中的數(shù)據(jù);lxml和正則一樣,也是用C語言實(shí)現(xiàn)的,是一款高性能的python HTML、XML解析器,也可以利用XPath語法,來定位特定的元素及節(jié)點(diǎn)信息。

2、lxml庫特點(diǎn)

HTML是超文本標(biāo)記語言,主要用于顯示數(shù)據(jù),他的焦點(diǎn)是數(shù)據(jù)的外觀

XML是可擴(kuò)展標(biāo)記語言,主要用于傳輸和存儲數(shù)據(jù),他的焦點(diǎn)是數(shù)據(jù)的內(nèi)容

3、lxml庫的安裝

windows系統(tǒng)下,在cmd命令提示框中,輸入如下命令

pip install lxml

在cmd命令行驗(yàn)證是否安裝成功。若引入模塊,不返回錯(cuò)誤則說明安裝成功。 

二、基本使用

1、lxml.etree

在爬蟲代碼采集過程中,通過etree.HTML直接將字符串實(shí)例轉(zhuǎn)化為element對象。

import requests
from lxml import etree
 
res = requests.get("http://www.jsons.cn/zt/")
 
html = res.text
 
root_element = etree.HTML(html)
 
print(root_element)
print(root_element.tag)

2、解析HTML網(wǎng)頁

#解析HTML字符串
from lxml import etree
text = '''
<html><body>
    <div class="key">
        <div class="name">無羨</div>
        <div class="age">20</div>
        <div class="address">四川</div>
    </div>
</body></html>
'''
# 開始初始化
html = etree.HTML(text)  # 這里需要傳入一個(gè)html形式的字符串
print(html)
print(type)
# 將字符串序列化為html字符串
result = etree.tostring(html).decode('utf-8')
print(result)
print(type(result))

3、讀取并解析HTML文件

from lxml import etree
 
# 將html文件進(jìn)行讀取
html = etree.parse('1.html')
 
# 將html內(nèi)容序列化
result = etree.tostring(html).decode('utf-8')
print(result)
print(type(result))
html = etree.HTML(result)  # 這里需要傳入一個(gè)html形式的字符串
print(html)
print(type)

三、lxml使用流程

1、 導(dǎo)入模塊

from lxml import etree

2、創(chuàng)建解析對象

調(diào)用 etree 模塊的 HTML() 方法來創(chuàng)建 HTML 解析對象。

parse_html = etree.HTML(html)

HTML() 方法能夠?qū)?HTML 標(biāo)簽字符串解析為 HTML 文件,該方法可以自動修正 HTML 文本。

from lxml import etree
html_str = '''
<div>
    <ul>
         <li class="item1"><a href="link1.html">Python</a></li>
         <li class="item2"><a href="link2.html">Java</a></li>
         <li class="site1"><a href="c.biancheng.net">C語言中文網(wǎng)</a>
         <li class="site2"><a href="www.baidu.com">百度</a></li>
         <li class="site3"><a href="www.jd.com">京東</a></li>
     </ul>
</div>
'''
html = etree.HTML(html_str)
 
result = etree.tostring(html)
print(result.decode('utf-8'))

四、lxml庫數(shù)據(jù)提取

1、提取所有a標(biāo)簽內(nèi)的文本信息

from lxml import etree
# 創(chuàng)建解析對象
parse_html=etree.HTML(html)
# 書寫xpath表達(dá)式,提取文本最終使用text()
xpath_bds='//a/text()'
# 提取文本數(shù)據(jù),以列表形式輸出
r_list=parse_html.xpath(xpath_bds)
# 打印數(shù)據(jù)列表
print(r_list)

2、獲取所有href的屬性值

from lxml import etree
# 創(chuàng)建解析對象
parse_html=etree.HTML(html)
# 書寫xpath表達(dá)式,提取文本最終使用text()
xpath_bds='//a/@href'
# 提取文本數(shù)據(jù),以列表形式輸出
r_list=parse_html.xpath(xpath_bds)
# 打印數(shù)據(jù)列表
print(r_list)

3、不匹配href=" www.biancheng.net/priduct"

from lxml import etree
# 創(chuàng)建解析對象
parse_html=etree.HTML(html)
# 書寫xpath表達(dá)式,提取文本最終使用text()
xpath_bds='//a/@href'
# 提取文本數(shù)據(jù),以列表形式輸出
xpath_bds='//ul[@id="sitename"]/li/a/@href'
# 打印數(shù)據(jù)列表
print(r_list)

總結(jié)

到此這篇關(guān)于Python操作lxml庫之基礎(chǔ)使用篇的文章就介紹到這了,更多相關(guān)Python操作lxml庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論