成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > python 提取html文本的方法

python 提取html文本的方法

熱門標(biāo)簽:富錦商家地圖標(biāo)注 外呼系統(tǒng)哪些好辦 沈陽防封電銷卡品牌 沈陽人工外呼系統(tǒng)價格 沈陽外呼系統(tǒng)呼叫系統(tǒng) 池州外呼調(diào)研線路 如何申請400電話費用 江西省地圖標(biāo)注 武漢外呼系統(tǒng)平臺

假設(shè)我們需要從各種網(wǎng)頁中提取全文,并且要剝離所有HTML標(biāo)記。通常,默認解決方案是使用BeautifulSoup軟件包中的get_text方法,該方法內(nèi)部使用lxml。這是一個經(jīng)過充分測試的解決方案,但是在處理成千上萬個HTML文檔時可能會非常慢。
通過用selectolax替換BeautifulSoup,您幾乎可以免費獲得5-30倍的加速!
這是一個簡單的基準(zhǔn)測試,可分析commoncrawl(`處理NLP問題時,有時您需要獲得大量的文本集?;ヂ?lián)網(wǎng)是文本的最大來源,但是不幸的是,從任意HTML頁面提取文本是一項艱巨而痛苦的任務(wù)。
假設(shè)我們需要從各種網(wǎng)頁中提取全文,并且要剝離所有HTML標(biāo)記。通常,默認解決方案是使用BeautifulSoup軟件包中的get_text方法,該方法內(nèi)部使用lxml。這是一個經(jīng)過充分測試的解決方案,但是在處理成千上萬個HTML文檔時可能會非常慢。
通過用selectolax替換BeautifulSoup,您幾乎可以免費獲得5-30倍的加速!這是一個簡單的基準(zhǔn)測試,可分析commoncrawl(https://commoncrawl.org/)的10,000個HTML頁面:

# coding: utf-8

from time import time

import warc
from bs4 import BeautifulSoup
from selectolax.parser import HTMLParser


def get_text_bs(html):
    tree = BeautifulSoup(html, 'lxml')

    body = tree.body
    if body is None:
        return None

    for tag in body.select('script'):
        tag.decompose()
    for tag in body.select('style'):
        tag.decompose()

    text = body.get_text(separator='\n')
    return text


def get_text_selectolax(html):
    tree = HTMLParser(html)

    if tree.body is None:
        return None

    for tag in tree.css('script'):
        tag.decompose()
    for tag in tree.css('style'):
        tag.decompose()

    text = tree.body.text(separator='\n')
    return text


def read_doc(record, parser=get_text_selectolax):
    url = record.url
    text = None

    if url:
        payload = record.payload.read()
        header, html = payload.split(b'\r\n\r\n', maxsplit=1)
        html = html.strip()

        if len(html) > 0:
            text = parser(html)

    return url, text


def process_warc(file_name, parser, limit=10000):
    warc_file = warc.open(file_name, 'rb')
    t0 = time()
    n_documents = 0
    for i, record in enumerate(warc_file):
        url, doc = read_doc(record, parser)

        if not doc or not url:
            continue

        n_documents += 1

        if i > limit:
            break

    warc_file.close()
    print('Parser: %s' % parser.__name__)
    print('Parsing took %s seconds and produced %s documents\n' % (time() - t0, n_documents))
>>> ! wget https://commoncrawl.s3.amazonaws.com/crawl-data/CC-MAIN-2018-05/segments/1516084886237.6/warc/CC-MAIN-20180116070444-20180116090444-00000.warc.gz
>>> file_name = "CC-MAIN-20180116070444-20180116090444-00000.warc.gz"
>>> process_warc(file_name, get_text_selectolax, 10000)
Parser: get_text_selectolax
Parsing took 16.170367002487183 seconds and produced 3317 documents
>>> process_warc(file_name, get_text_bs, 10000)
Parser: get_text_bs
Parsing took 432.6902508735657 seconds and produced 3283 documents

顯然,這并不是對某些事物進行基準(zhǔn)測試的最佳方法,但是它提供了一個想法,即selectolax有時比lxml快30倍。
selectolax最適合將HTML剝離為純文本。如果我有10,000多個HTML片段,需要將它們作為純文本索引到Elasticsearch中。(Elasticsearch有一個html_strip文本過濾器,但這不是我想要/不需要在此上下文中使用的過濾器)。事實證明,以這種規(guī)模將HTML剝離為純文本實際上是非常低效的。那么,最有效的方法是什么?

  • PyQuery
from pyquery import PyQuery as pq

text = pq(html).text()
  • selectolax
from selectolax.parser import HTMLParser

text = HTMLParser(html).text()
  • 正則表達式
import re

regex = re.compile(r'.*?>')
text = clean_regex.sub('', html)

結(jié)果

我編寫了一個腳本來計算時間,該腳本遍歷包含HTML片段的10,000個文件。注意!這些片段不是完整的html>文檔(帶有head>和body>等),只是HTML的一小部分。平均大小為10,314字節(jié)(中位數(shù)為5138字節(jié))。結(jié)果如下:

pyquery
  SUM:    18.61 seconds
  MEAN:   1.8633 ms
  MEDIAN: 1.0554 ms
selectolax
  SUM:    3.08 seconds
  MEAN:   0.3149 ms
  MEDIAN: 0.1621 ms
regex
  SUM:    1.64 seconds
  MEAN:   0.1613 ms
  MEDIAN: 0.0881 ms

我已經(jīng)運行了很多次,結(jié)果非常穩(wěn)定。重點是:selectolax比PyQuery快7倍。

正則表達式好用?真的嗎?

對于最基本的HTML Blob,它可能工作得很好。實際上,如果HTML是p> Foo& Bar / p>,我希望純文本轉(zhuǎn)換應(yīng)該是Foo&Bar,而不是Foo& bar。
更重要的一點是,PyQuery和selectolax支持非常特定但對我的用例很重要的內(nèi)容。在繼續(xù)之前,我需要刪除某些標(biāo)簽(及其內(nèi)容)。例如:

h4 class="warning">This should get stripped./h4>
p>Please keep./p>
div style="display: none">This should also get stripped./div>

正則表達式永遠無法做到這一點。

2.0 版本

因此,我的要求可能會發(fā)生變化,但基本上,我想刪除某些標(biāo)簽。例如:div class =“ warning”>  、 div class =“ hidden”> 和 div style =“ display:none”>。因此,讓我們實現(xiàn)一下:

  • PyQuery
from pyquery import PyQuery as pq

_display_none_regex = re.compile(r'display:\s*none')

doc = pq(html)
doc.remove('div.warning, div.hidden')
for div in doc('div[style]').items():
    style_value = div.attr('style')
    if _display_none_regex.search(style_value):
        div.remove()
text = doc.text()
  • selectolax
from selectolax.parser import HTMLParser

_display_none_regex = re.compile(r'display:\s*none')

tree = HTMLParser(html)
for tag in tree.css('div.warning, div.hidden'):
    tag.decompose()
for tag in tree.css('div[style]'):
    style_value = tag.attributes['style']
    if style_value and _display_none_regex.search(style_value):
        tag.decompose()
text = tree.body.text()

這實際上有效。當(dāng)我現(xiàn)在為10,000個片段運行相同的基準(zhǔn)時,新結(jié)果如下:

pyquery
  SUM:    21.70 seconds
  MEAN:   2.1701 ms
  MEDIAN: 1.3989 ms
selectolax
  SUM:    3.59 seconds
  MEAN:   0.3589 ms
  MEDIAN: 0.2184 ms
regex
  Skip

同樣,selectolax擊敗PyQuery約6倍。

結(jié)論

正則表達式速度快,但功能弱。selectolax的效率令人印象深刻。

以上就是python 提取html文本的方法的詳細內(nèi)容,更多關(guān)于python 提取html文本的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Python識別html主要文本框過程解析
  • Python使用get_text()方法從大段html中提取文本的實例
  • python爬蟲入門教程--HTML文本的解析庫BeautifulSoup(四)
  • Python轉(zhuǎn)換HTML到Text純文本的方法
  • python如何發(fā)送帶有附件、正文為HTML的郵件
  • python中HTMLParser模塊知識點總結(jié)
  • python郵件中附加文字、html、圖片、附件實現(xiàn)方法
  • python 將html轉(zhuǎn)換為pdf的幾種方法
  • python爬蟲beautifulsoup解析html方法
  • python爬蟲 requests-html的使用
  • 關(guān)于pycharm 切換 python3.9 報錯 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的問題
  • Python HTMLTestRunner如何下載生成報告

標(biāo)簽:株洲 通遼 常德 黑龍江 潛江 阿里 呂梁 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python 提取html文本的方法》,本文關(guān)鍵詞  python,提取,html,文本,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python 提取html文本的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于python 提取html文本的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    蜜桃视频网站www| 在线一区二区日韩| 69av成年福利视频| 亚洲欧洲一区二区三区| 中国china体内裑精亚洲片| 欧美日韩中文字幕| 成人av电影观看| 欧美日韩国产不卡在线看| eeuss影院95999部| 亚洲精品午夜精品| 国产亚洲一区二区三区| 亚洲欧美黄色片| av一区二区三区免费观看| 欧美亚洲国产一区在线观看网站| re久久精品视频| 国产在线视频你懂| 日韩欧美一区二区三区视频| 欧美激情国产精品| 欧美日韩一区二区三区| 婷婷激情5月天| 久久91精品视频| 97国产精品视频人人做人人爱| 日韩欧美一区二区三区久久| 久久久影院官网| 欧美14一18处毛片| 日韩av三级在线观看| 欧美色网站导航| 日本欧洲一区| 夜夜操夜夜骑| 成人在线观看免费网站| 搞av.com| 久久99精品国产99久久6尤物| 国产精品自产拍在线网站| 人人爽久久涩噜噜噜网站| 欧美精品欧美精品| 亚洲激情网站免费观看| 五月天综合激情网| 亚洲新中文字幕| 扒开腿狂躁女人爽出白浆2| 丝袜美腿亚洲一区二区| 中文字幕一区二区三区人妻| 国产91在线观看丝袜| 日韩一区二区精品在线观看| 亚洲已满18点击进入久久| 免费极品av一视觉盛宴| 欧美女v视频| caoporn-草棚在线视频最| 免费视频一区二区三区在线观看| 日韩精品免费在线视频| 日韩在线视频播放| 日韩中文字幕在线播放| 亚洲成人资源网| 久久婷婷人人澡人人喊人人爽| 欧美日韩精品免费观看视频完整| 欧美成人在线免费视频| 青青草视频在线观看免费| 成人在线免费观看av| 日韩一卡二卡在线观看| 日韩精品国产欧美| heyzo视频在线播放| 99久久精品国产一区二区成人| 4438全国亚洲精品观看视频| 欧美刺激午夜性久久久久久久| 福利视频午夜| 成人在线影视| jjzzjjzzjjzz| 欧美日韩国产电影| 亚洲女人天堂网| 国产精品一区二区三区免费| 精品视频在线观看一区| 无码人妻久久一区二区三区蜜桃| 亚洲国产精品久久久久秋霞影院| 奇米一区二区| 成人免费在线一区二区三区| 我要看黄色一级片| 少妇一级淫片免费放中国| 成人3d动漫在线观看| 日本三级在线观看网站| www.久久av.com| 黑人巨大精品一区二区在线| 大胆人体色综合| 黄污视频在线观看| 国产这里有精品| 一区二区三区四区影院| 国产亚洲欧美日韩俺去了| 精品亚洲永久免费| 亚洲AV无码一区二区三区少妇| 尤物网站在线观看| 久久久久久久精| 欧美日本高清视频| 亚洲人xxxx| 国产小视频在线观看| 91精品国产一区二区人妖| 色av性av丰满av| 国际av在线| 4480yy私人影院高清不卡| 午夜精品久久久久久久蜜桃app| 日本欧美在线视频免费观看| 国产福利片一区二区| 免费永久网站黄欧美| 日本欧美在线观看| 日本韩国欧美一区| 国产精品免费看久久久香蕉| 国产一级片大全| 国产成人视屏| 亚洲国产女人aaa毛片在线| 欧美丰满老妇厨房牲生活| 久久久久伊人| 中文字幕第12页| 国产精品福利在线观看网址| 亚洲精品一区视频| 国产高清成人在线| 亚洲第一网站| 涩涩视频在线观看免费| 顶级嫩模精品视频在线看| gogo在线高清视频| 999国产精品| 日韩欧美一区视频| 国产精选一区二区三区| 国产精品久久久久久久久借妻| 精品综合久久久久久97| 国产区一区二区| 东京一区二区| 亚洲欧美一区二区视频| 欧美性xxxxx极品视频| 91久久午夜| 亚洲成人在线免费| 美日韩精品免费视频| 国产精品69xx| 女同互添互慰av毛片观看| 好男人免费精品视频| 美女高潮视频在线看| 亚洲一级在线播放| 日本中文字幕免费观看| 97dyy97影院理论片在线| 欧美福利视频导航| 在线观看午夜av| 中文字幕一区图| 精品久久久久久久一区二区蜜臀| 国产精品一区二区免费看| 久久国产精品免费视频| 国产日韩换脸av一区在线观看| 欧美日韩一区在线观看视频| 亚洲色图图片| 国产精品视频xxxx| 欧美精品久久久久久久久久| 日本亚州欧洲精品不卡| 欧美揉bbbbb揉bbbbb| 色姑娘资源站| 天堂网在线观看视频| 欧美乱大交xxxxx在线观看| 免费在线成人av电影| 亚洲xxx自由成熟| 国产无遮挡aaa片爽爽| 在线观看麻豆| 中文字幕精品—区二区四季| 欧美男人的天堂一二区| 91色porny蝌蚪| 国产精品网址| 久久久久久久久久久久久久久久久久久久| 亚洲啊v在线免费视频| 美女啪啪无遮挡免费久久网站| 日韩av高清在线| 亚洲福利一区二区| av在线二区| 在线观看亚洲专区| 亚洲精品aⅴ中文字幕乱码| 日本免费高清一区二区| 欧美韩国日本精品一区二区三区| 国产精品久久久久9999高清| 亚洲大黄网站| 黄色成年人视频在线观看| 在线免费观看黄| 精品动漫3d一区二区三区免费版| 久久久久久久亚洲| 亚洲国产欧美日韩| 牛牛影视久久网| 日韩欧美激情一区二区| 欧美绝品在线观看成人午夜影视| 国产精品久久久久毛片大屁完整版| 欧美日本一区二区视频在线观看| 亚洲国产精品成人va在线观看| 欧美mv日韩mv国产| 日本视频在线免费观看| 一级特级黄色片| 精品丝袜一区二区三区| 精品动漫3d一区二区三区免费版| 五月天激情综合网| 精品人妻少妇一区二区| 国产精品无码99re| 国产在线制服美女| 成人免费福利视频| 在线精品一区| 日韩免费精品| 无码免费一区二区三区免费播放| 久草视频中文在线| 国产精品无码久久久久一区二区| 亚洲日本欧美日韩高观看| 国产精品一区二区免费在线观看| 无码人妻aⅴ一区二区三区69岛| 永久免费网站视频在线观看| 中文乱码字幕高清一区二区| 亚洲成人在线免费| 日韩久久精品成人| 国产一级做a爰片久久毛片男| 久久亚洲精品中文字幕冲田杏梨| 免费高清在线一区| 热re99久久精品国产66热| 成年在线播放小视频| 一级黄色大片视频| 午夜成年人在线免费视频| 久久精品在线免费观看| a v视频在线观看| 成人自拍视频网站| 欧美套图亚洲一区| 成熟丰满熟妇高潮xxxxx视频| 免费理论片在线观看播放老| 国产午夜精品一区二区三区欧美| 欧美一区二区在线视频观看| 国产在线播放91| 中文精品在线| 中文资源在线播放| 香蕉免费一区二区三区在线观看| 欧美一级淫片videoshd| 成人国产精品视频| 欧美国产日韩中文字幕在线| 国产精选一区二区| 国产精品久久久久久成人| 轻点好疼好大好爽视频| 欧美艳星kaydenkross| 亚洲美女视频在线观看| wwwww在线观看| 欧美大片免费高清观看| 欧美精品123| 国产精品亚洲综合| 欧洲精品久久久久毛片完整版| 日韩无码精品一区二区三区| 亚洲av无码乱码国产精品久久| 免费在线成人| 国产日韩第一页| 国产精品资源网| 午夜激情福利在线| 欧美一乱一性一交一视频| 亚洲免费av网址| 日韩欧美第一页| 亚洲国产精品自拍视频| 欧美精品日韩三级| 俺来俺也去www色在线观看| 成人午夜精品| 精品日韩久久久| japanese日本护士撒尿| 最近中文字幕在线观看| 免费吸乳羞羞网站视频| a天堂中文在线| 在线观看老湿视频福利| 黄色片在线免费看| 欧美精品一区二区三区在线| 久久福利精品| 国产1区2区3区中文字幕| 色三级在线观看| 精品国精品自拍自在线| 国产高清自拍视频在线观看| 亚洲风情在线资源| 精品久久久久久无码国产| 爱爱爱视频网站| 欧美黑人精品一区二区不卡| 激情小说网站亚洲综合网| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲wwwwww| 色久视频在线播放| 久久久亚洲午夜电影| 国产精东传媒成人av电影| 操人真爽免费视频| 82av视频| 中文字幕1234区| 国产麻豆一精品一男同| 久久在线中文字幕| 国产精品久久久久久久久借妻| 青春有你2免费观看完整版在线播放高清| 日产精品久久久久久久| 国产亚洲精品自在线观看| 欧美日韩精品综合| 在线观看国产福利视频| 久久久久久久久久97| 日韩a级黄色片| 久久久精品人妻一区二区三区四| 午夜在线视频观看日韩17c| 奇米影视首页 狠狠色丁香婷婷久久综合| 国产人妻777人伦精品hd| 欧美日韩成人综合天天影院| 欧洲av一区二区| 青青草娱乐视频| 青青青青在线视频| 欧美一级欧美三级在线观看| 国产精品91xxx| 综合天天久久| 91最新在线视频| 中国女人内谢25xxxxx| 免费观看国产视频在线| 被弄出白浆喷水了视频| 综合五月激情网| 亚洲网站在线播放| 天天插天天射天天干| 国产原创中文av| 日本一区二区三区精品| 欧美日韩一区二区在线观看视频| 亚洲精品成人| 日本片在线观看| 日韩精品aaa| 天天射狠狠干| 麻豆亚洲av成人无码久久精品| 天天综合天天干| 麻豆成全视频免费观看在线看| 福利视频导航一区| 中日韩免费毛片| 欧美精品七区| 99re在线视频| 中文字幕av观看| 日韩av电影手机在线| 色哟哟网站入口亚洲精品| 国产精品久久久免费视频| 四虎影视免费永久在线| 熟妇无码乱子成人精品| 日韩理论视频| 国产精品一线| av免费在线一区| 亚洲地区一二三色| 99精彩视频在线观看免费|