最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中五種不同解析庫的應(yīng)用與提取速度對比

 更新時間:2025年05月30日 10:27:27   作者:失敗又激情的man  
這篇文章主要為大家詳細介紹了Python中五種不同解析庫的應(yīng)用與提取速度對比,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

今天閑著沒事,突發(fā)異想,相對比不同解析庫的解析速度,本文中對比五種解析庫

一、概述

1.scrapy自帶Css選擇

2.scrapy自帶xpath

3.lxml自帶xpath     from lxml import etree

4.bs4自帶美味的湯 from bs4 import BeautifulSoup

5.re 正則表達式

以這個文本為例,在循環(huán)解析鏈接標題時間情況,再循環(huán)499次并打印輸出,約循環(huán)7500次,為了避免誤差,考慮到CPU資源波動,那么Python程序能夠得到的CPU時間就會或多或少,從而導致運行時間變長或變短,所以每種方式運行三次。

當CPU爆滿時

 運行時間非常慢

當CPU充足時,同樣是程序就會非???/p>

本程序都在CPU充足情況下運行

text ='''<div class="news_list zy_listbox">
                        <!-- 展示15條數(shù)據(jù)后出現(xiàn)分頁 -->
                        <ul>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2565" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-010號</a><span>2024-07-18</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2564" rel="external nofollow"  rel="external nofollow" >單一來源采購公示</a><span>2024-07-15</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2563" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-009號(第二次)</a><span>2024-07-10</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2562" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-009號</a><span>2024-07-05</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2561" rel="external nofollow"  rel="external nofollow" >等保測評詢價函</a><span>2024-05-28</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2560" rel="external nofollow"  rel="external nofollow" >單一來源采購公示</a><span>2024-05-24</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2559" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-007號(第二次)</a><span>2024-05-20</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2558" rel="external nofollow"  rel="external nofollow" >單一來源采購公示</a><span>2024-05-16</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2557" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-008號</a><span>2024-05-06</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2556" rel="external nofollow"  rel="external nofollow" >詢價函</a><span>2024-04-30</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2555" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-007號</a><span>2024-04-22</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2554" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2023-004號(第二次)</a><span>2024-04-12</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2553" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-006號</a><span>2024-03-29</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2552" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-005號</a><span>2024-03-20</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2551" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-004號</a><span>2024-03-16</span></li>
                            
                        </ul>
                    </div>'''

二、探討CSS選擇器解析速度

t= time.time()
selector = Selector(text=text)
for i in range(1,500):
    for l in selector.css('div.news_list>ul>li'):
        print(l.css('a::text').get())
        print(l.css('span::text').get())
        print(l.css('a::attr(href)').get())
css_parse = time.time()-t
print('css_parse用時:',css_parse)

第一次

第二次

第三次

三、探討scrapy里的xpath解析速度

t= time.time()
selector = Selector(text=text)
for i in range(1,500):
    for l in selector.xpath('//div[@class = "news_list zy_listbox"]/ul/li'):
        print(l.xpath('.//a/text()').get())
        print(l.xpath('.//span/text()').get())
        print(l.xpath('.//a/@href').get())
scrapy_xpath_parse = time.time()-t
print('scrapy_xpath_parse用時:',scrapy_xpath_parse)

第一次

第二次

第三次

四、探討lxml里的xpath解析速度

t= time.time()
selector = etree.HTML(text)
for i in range(1,500):
    for l in selector.xpath('//div[@class = "news_list zy_listbox"]/ul/li'):
        print(l.xpath('.//a/text()')[0])
        print(l.xpath('.//span/text()')[0])
        print(l.xpath('.//a/@href')[0])
xpath_parse = time.time()-t
print('xpath_parse用時:',xpath_parse)

第一次

第二次

第三次

五、探討bs4自帶BeautifulSoup解析速度

t = time.time()
soup = BeautifulSoup(text, 'html.parser')
news_list = soup.select('div.news_list.zy_listbox ul li')
for i in range(1,500):
    for l in news_list:
        print( l.select_one('a').get_text(strip=True))
        print(l.select_one('span').get_text(strip=True))
        print(l.select_one('a')['href'])
bs_parse = time.time() - t
print('bs_parse用時:',bs_parse )

第一次

第二次

第三次

六、探討re正則解析速度

t = time.time()
li = re.findall(' <li><b>·</b>.*?</li>',text)
for l in range(1,500):
    for i in li:
        print(re.search('>(.*?)</a>',i).group(1))
        print(re.search('<span>(.*?)</span>',i).group(1))
        print(re.search('<a href="(.*?)" rel="external nofollow"  rel="external nofollow" >',i).group(1))
re_time = time.time()-t
print('re:',re_time )

第一次

第二次

第三次

七、總結(jié) 

經(jīng)上述程序?qū)嶒炞C明,速度排序:

re正則  > lxml  xpath  >  bs4   BeautifulSoup  >   Scrapy  css   ≈    Scrapy  xpath

在本實驗中,并不嚴謹,除CPU波動外,只選取了一種特定的HTML網(wǎng)頁進行速度對比,沒有考慮到不同類型和結(jié)構(gòu)的網(wǎng)頁對解析速度的影響。例如,網(wǎng)頁中若包含大量嵌套的表單、復雜的JavaScript生成的動態(tài)內(nèi)容等,甚至有個html藏在動態(tài)接口的json里面,不同解析工具的表現(xiàn)可能會大不相同,這使得實驗結(jié)果存在一定的局限性。實際應(yīng)用中還需要根據(jù)具體的HTML網(wǎng)頁結(jié)構(gòu)、解析需求以及性能指標等多方面因素綜合考量,選擇最合適的解析工具。

總程序

from lxml import etree
from scrapy import Selector
from bs4 import BeautifulSoup
import re
import requests
import time
text ='''<div class="news_list zy_listbox">
                        <!-- 展示15條數(shù)據(jù)后出現(xiàn)分頁 -->
                        <ul>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2565" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-010號</a><span>2024-07-18</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2564" rel="external nofollow"  rel="external nofollow" >單一來源采購公示</a><span>2024-07-15</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2563" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-009號(第二次)</a><span>2024-07-10</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2562" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-009號</a><span>2024-07-05</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2561" rel="external nofollow"  rel="external nofollow" >等保測評詢價函</a><span>2024-05-28</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2560" rel="external nofollow"  rel="external nofollow" >單一來源采購公示</a><span>2024-05-24</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2559" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-007號(第二次)</a><span>2024-05-20</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2558" rel="external nofollow"  rel="external nofollow" >單一來源采購公示</a><span>2024-05-16</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2557" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-008號</a><span>2024-05-06</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2556" rel="external nofollow"  rel="external nofollow" >詢價函</a><span>2024-04-30</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2555" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-007號</a><span>2024-04-22</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2554" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2023-004號(第二次)</a><span>2024-04-12</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2553" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-006號</a><span>2024-03-29</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2552" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-005號</a><span>2024-03-20</span></li>
                                                        <li><b>·</b><a href="/index/Article/detail.html?id=2551" rel="external nofollow"  rel="external nofollow" >青海省生態(tài)環(huán)境監(jiān)測中心自行采購2024-004號</a><span>2024-03-16</span></li>
                            
                        </ul>
                    </div>'''
t= time.time()
selector = Selector(text=text)
for i in range(1,500):
    for l in selector.css('div.news_list>ul>li'):
        print(l.css('a::text').get())
        print(l.css('span::text').get())
        print(l.css('a::attr(href)').get())
css_parse = time.time()-t
t= time.time()
selector = Selector(text=text)
for i in range(1,500):
    for l in selector.xpath('//div[@class = "news_list zy_listbox"]/ul/li'):
        print(l.xpath('.//a/text()').get())
        print(l.xpath('.//span/text()').get())
        print(l.xpath('.//a/@href').get())
scrapy_xpath_parse = time.time()-t
t= time.time()
selector = etree.HTML(text)
for i in range(1,500):
    for l in selector.xpath('//div[@class = "news_list zy_listbox"]/ul/li'):
        print(l.xpath('.//a/text()')[0])
        print(l.xpath('.//span/text()')[0])
        print(l.xpath('.//a/@href')[0])
xpath_parse = time.time()-t
t = time.time()
soup = BeautifulSoup(text, 'html.parser')
news_list = soup.select('div.news_list.zy_listbox ul li')
for i in range(1,500):
    for l in news_list:
        print( l.select_one('a').get_text(strip=True))
        print(l.select_one('span').get_text(strip=True))
        print(l.select_one('a')['href'])
bs_parse = time.time() - t
t = time.time()
li = re.findall(' <li><b>·</b>.*?</li>',text)
for l in range(1,500):
    for i in li:
        print(re.search('>(.*?)</a>',i).group(1))
        print(re.search('<span>(.*?)</span>',i).group(1))
        print(re.search('<a href="(.*?)" rel="external nofollow"  rel="external nofollow" >',i).group(1))
re_time = time.time()-t
print('css_parse用時:',css_parse)
print('scrapy_xpath_parse用時:',scrapy_xpath_parse)
print('xpath_parse用時:',xpath_parse)
print('bs_parse用時:',bs_parse )
print('re用時:',re_time )

各時間對比

到此這篇關(guān)于Python中五種不同解析庫的應(yīng)用與提取速度對比的文章就介紹到這了,更多相關(guān)Python解析庫應(yīng)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python常用的內(nèi)置類、內(nèi)置方法淺析

    Python常用的內(nèi)置類、內(nèi)置方法淺析

    Python以其簡單易用且功能強大的特性,贏得了廣大開發(fā)者的喜愛,這篇文章主要介紹了Python常用內(nèi)置類、內(nèi)置方法的相關(guān)資料,文中介紹的非常詳細,需要的朋友可以參考下
    2025-12-12
  • 使用python實現(xiàn)tcp自動重連

    使用python實現(xiàn)tcp自動重連

    下面小編就為大家?guī)硪黄褂胮ython實現(xiàn)tcp自動重連實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。
    2017-07-07
  • slearn缺失值處理器之Imputer詳析

    slearn缺失值處理器之Imputer詳析

    這篇文章主要給大家介紹了關(guān)于slearn缺失值處理器之Imputer的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-08-08
  • 在PyTorch中Tensor的查找和篩選例子

    在PyTorch中Tensor的查找和篩選例子

    今天小編就為大家分享一篇在PyTorch中Tensor的查找和篩選例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python實戰(zhàn)小游戲飛機大戰(zhàn)詳解

    Python實戰(zhàn)小游戲飛機大戰(zhàn)詳解

    飛機大戰(zhàn)想必是很多人童年時期的經(jīng)典游戲,我們依舊能記得抱個老人機娛樂的場景,下面這篇文章主要給大家介紹了關(guān)于如何利用python寫一個簡單的飛機大戰(zhàn)小游戲的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Python threading多線程編程實例

    Python threading多線程編程實例

    這篇文章主要介紹了Python threading多線程編程實例,本文講解了使用函數(shù)和線程類實現(xiàn)多線程編程的例子,需要的朋友可以參考下
    2014-09-09
  • python?random模塊常用函數(shù)基礎(chǔ)教程

    python?random模塊常用函數(shù)基礎(chǔ)教程

    這篇文章主要為大家介紹了python?random模塊常用函數(shù)基礎(chǔ)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • python多進程執(zhí)行方法apply_async使用說明

    python多進程執(zhí)行方法apply_async使用說明

    這篇文章主要介紹了python多進程執(zhí)行方法apply_async使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 終端命令查看TensorFlow版本號及路徑的方法

    終端命令查看TensorFlow版本號及路徑的方法

    今天小編就為大家分享一篇終端命令查看TensorFlow版本號及路徑的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python刪除字典中的某個key的常用方法

    Python刪除字典中的某個key的常用方法

    字典是Python中的一種數(shù)據(jù)類型,它是一個無序的鍵值對集合,在實際的編程中,我們經(jīng)常需要刪除字典中的某個鍵值對,本文將從多個角度分析Python刪除字典中的某個key的方法,需要的朋友可以參考下
    2024-10-10

最新評論

蒙城县| 山东省| 安化县| 安徽省| 凌海市| 青浦区| 天气| 富裕县| 杭州市| 星子县| 杭州市| 景谷| 四会市| 溧阳市| 延安市| 瑞昌市| 柳州市| 平遥县| 惠东县| 绵竹市| 偏关县| 营山县| 博客| 建德市| 西青区| 宣汉县| 景东| 盘锦市| 阜宁县| 航空| 巢湖市| 涟源市| 阿瓦提县| 宜君县| 盐城市| 建平县| 新余市| 司法| 大田县| 平昌县| 伊通|