最近看到好几篇类似“n行Python代码…”的博文,看起来还挺不错,简洁、实用,传播了知识、带来了阅读量,撩动了老猿的心,决定跟风一把,推一个“
n行Python代码系列
”文章。
今天介绍使用3行代码从HTML文本中快速提取纯文本信息的简单快速方法。更多“
n行Python代码系列
”文章请参考免费专栏《
https://blog.csdn.net/laoyuanpython/category_10858655.html n行Python代码系列
》。
老猿在通过程序获取网站博文信息时,有时需要获得博文的纯文本信息,但通过爬虫爬取的网页内容都是HTML报文,为此需要去除HTML报文中与标签相关的控制信息,只保留纯文本的信息。原以为需要费点时间,想到自己使用过的BeatifulSoap,在解析HTML标签时功能强大,应该有对应的办法,一查和验证,果然发现一个非常简单的办法,就是使用BeatifulSoap对象的text属性即可。
>>>from bs4 import BeautifulSoup
>>>text ="""<!DOCTYPE html>
<html lang="zh-CN">
<meta charset="utf-8">
<link rel="canonical" href="https://blog.csdn.net/LaoYuanPython/article/details/114454198"/>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="renderer" content="webkit"/>
<meta name="force-rendering" content="webkit"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="report" content='{"pid": "blog", "spm":"1001.2101"}'>
<meta name="referrer" content="always">
<meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="alternate" media="handheld" href="#" />
<meta name="shenma-site-verification" content="5a59773ab8077d4a62bf469ab966a63b_1497598848">
<meta name="applicable-device" content="pc">
<link href="https://g.csdnimg.cn/static/logo/favicon32.ico" rel="shortcut icon" type="image/x-icon" />
<title>Python爬虫入门实战3:获取CSDN个人博客信息_老猿Python-CSDN博客</title>
<meta name="keywords" content="Python爬虫入门实战3:获取CSDN个人博客信息">
<meta name="csdn-baidu-search" content='{"autorun":true,"install":true,"keyword":"Python爬虫入门实战3:获取CSDN个人博客信息"}'>
<meta name="description" content="本文结合CSDN博文的中关于博客的原创文章数、周排名、总排名、总阅读量、博客等级、积分、粉丝数、总获赞数、总评论、总收藏数以及按时间的发文情况的HTML报文信息,提供了爬取博文内容并分析这些信息的代码示例,有助于理解利用BeatifulSoap4结合多个标签分析爬取数据的HTML报文内容。">
<script src='//g.csdnimg.cn/tingyun/1.8.3/blog.js' type='text/javascript'></script>
<link rel="stylesheet" type="text/css" href="https://csdnimg.cn/release/blogv2/dist/pc/css/detail_enter-7353a41e6d.min.css">
<script type="application/ld+json">{"@context":"https://ziyuan.baidu.com/contexts/cambrian.jsonld","@id":"https://blog.csdn.net/LaoYuanPython/article/details/114454198","appid":"1638831770136827","pubDate":"2021-03-06T19:53:45","title":"Python爬虫入门实战3:获取CSDN个人博客信息_老猿Python-CSDN博客","upDate":"2021-03-06T20:49:49"}</script>
<link rel="stylesheet" type="text/css" href="https://csdnimg.cn/release/blogv2/dist/pc/themesSkin/skin-shark/skin-shark-39d3df9199.min.css">
<script src="https://csdnimg.cn/public/common/libs/jquery/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="https://g.csdnimg.cn/??fixed-sidebar/1.1.6/fixed-sidebar.js" type="text/javascript"></script>
<script src='//g.csdnimg.cn/common/csdn-report/report.js' type='text/javascript'></script>
<link rel="stylesheet" type="text/css" href="https://csdnimg.cn/public/sandalstrap/1.4/css/sandalstrap.min.css">
<style>
.MathJax, .MathJax_Message, .MathJax_Preview{
display: none
</style>
<script src="https://dup.baidustatic.com/js/ds.js"></script>
</head>"""
>>> soup = BeautifulSoup(text,'lxml')
>>> soup.text
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPython爬虫入门实战3:获取CSDN个人博客信息_老猿Python-CSDN博客\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'
上面的代码总共四行,其中一行是HTML文本赋值的,真正与提取相关的就三行代码,分别实现了导入BeautifulSoup、构建BeautifulSoup对象、显示报文中的纯文本。
BeautifulSoup是bs4模块的类,它是一个高效的网页解析库,是用于解析、遍历、维护网页“标签树”的功能库,可以从 HTML 或 XML 文件中提取数据。BeautifulSoup对象对应一个HTML/XML文档的全部内容。
beautifulsoup支持不同的解析器,比如,对HTML解析,对XML解析,对HTML5解析。一般情况下,我们用的比较多的是 lxml 解析器。
lxml是一款XML和HTML的解析器,其主要功能是解析和提取XML和HTML中的数据,它可以被BeautifulSoup用于解析HTML文本,当然BeautifulSoup自己也默认带有解析器,也可以支持一些其他解析器。
在操作系统命令行方式执行安装bs4模块和lxml解析器模块的命令:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple bs4
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple lxml
因为BeautifulSoup是bs4模块提供的一个类,一般导入时使用:
from bs4 import BeautifulSoup
更多关于BeautifulSoup的介绍请参考《Python爬虫入门 》
专栏网址:https://blog.csdn.net/laoyuanpython/category_10762553.html
本文介绍了使用Python BeautifulSoup模块快速解析HTML报文,并提取HTML报文中的纯文本信息的方法和案例,通过BeautifulSoup模块可简单快速完成从HTML文本中提取出去除标签信息的纯文本,方便后续程序的使用。
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
更多关于BeautifulSoup的介绍请参考老猿的《Python爬虫入门专栏 https://blog.csdn.net/laoyuanpython/category_10762553.html》。
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录 》
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。
前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。
如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。
如果对文章内容存在疑问,可以在博客评论区留言,或关注:老猿Python 微信公号发消息咨询。
可以尝试如下代码:"""HTML text conversions."""from HTMLParser import HTMLParser, HTMLParseErrorfrom htmlentitydefs import name2codepointimport reclass _HTMLToText(HTMLParser):def __init__(self):HTMLParser.__i...
由于工作需要在一大堆日志里面提取相应的一些固定字符,如果单纯靠手工取提取,数据量大,劳心劳力,于是自然而然想到了用Python做一个对应的提取工具,代替手工提取的繁杂,涉及中文字符,正则表达式不好匹配,但不是不可以实现,这个以后优化时再说。
需求描述:
一个父目录中存在多个子文件夹,子文件夹下有多个txt形式化的Log日志,要求从所有地方Log日志中找出CardType=9, CardNo=0时的CardID的值,并将其统计存储到一个文本文件中,要求CardID不能够重复。
需求解析:
首先获取所有的Log日志的全路径,根据路径分别加载到将各个Log日志加载到内存中进行提取分析,并将结果存储到
PaperScraper有助于从科学期刊文章中提取文本和元数据,以用于NLP系统。 在最简单的应用程序中,通过期刊文章的URL查询并接收包含文章文本和元数据的结构化JSON对象。 更强大的是,通过文章的相关属性标签(即DOI,Pubmed ID)进行查询,并自动找到并从中提取文章URL。
分三行检索结构化期刊文章:
from paperscraper import PaperScraper
scraper = PaperScraper ()
print ( scraper . extract_from_url ( "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3418173/" ))
"title": "Gentamicin-loaded nanoparticles show improved antimicrobia
然后使用requests库获取页面内容,将其传递给BeautifulSoup对象,最后调用get_text()方法进行提取。现在,您已经成功地从HTML页面中提取了纯文本信息,并将其存储在“text”变量中。总之,这是一个简单而有效的方法,可以轻松地从HTML页面中提取纯文本信息,无需复杂的代码。在本文中,我们将探讨如何使用三行Python代码从HTML中提取纯文本信息。代码中的“url”是HTML页面的网址。请替换为您要提取的实际URL。三行Python代码:提取HTML中的纯文本信息。
如果你需要从HTML网页中提取纯文本信息,Python是一个强大且灵活的工具。在本文中,我将为你展示如何使用Python解析HTML,并提取其中的纯文本数据。我们将使用Python的Beautiful Soup库,这是一个流行的HTML解析库,帮助我们轻松地处理HTML标记并提取所需的文本。使用Beautiful Soup库,你可以轻松地处理HTML标记,并提取所需的文本数据。你还可以进一步处理和分析提取的文本数据,根据自己的需求进行更多的操作。现在,我们可以使用这个函数来提取指定网页的纯文本信息。
我想提取使用Python的HTML文件中的文本。我想基本上是相同的输出我会得到,如果我复制从浏览器中的文本,粘贴到记事本。 P> 我想的东西比使用正则表达式可能会失败形成不好的HTML更强大的。我见过很多人建议美味的汤,但我已经使用它有一些问题。首先,它拾起不需要的文本,如JavaScript源。此外,它没有解释HTML实体。例如,我希望和放大器;#39;在HTML源转换为文本撇号,就好像我...
在解决自然语言处理问题时,有时你需要获得大量的文本集。互联网是文本的最大来源,但是从任意HTML页面提取文本是一项艰巨而痛苦的任务。
假设我们需要从各种网页中提取全文,并且要剥离所有HTML标记。通常,默认解决方案是使用BeautifulSoup软件包中的get_text方法,该方法内部使用lxml。这是一个经过充分测试的解决方案,但是在处理成千上万个HTML文档时可能会非常慢。
通过用selectolax替换BeautifulSoup,您几乎可以免费获得5-30倍的加速!
这是一个简单的基准测试,可分析.
WebjxCom提示: 对搜索引擎、文件索引、文档转换、数据检索、站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理。事实上,通过Python语言提供的各种模块,我们无需借助Web服务器或者Web浏览器就能够解析和处理HTML文档。<br /> 对搜索引擎、文件索引、文档转换、数据检索、站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理。事实上,通过Python语言提供的各种模块,我们无需借助Web服务器或者Web浏览器就能够解析和处理HTML文档。本文上篇中,
我正在尝试使用MLStripper类,我发现在一些帖子中推荐使用它来从电子邮件中剥离html,以获得纯文本。strip_tags函数在尝试分析时遇到问题,原因是“@”符号。我想这个类的功能还不够强大,不能只解析有效的html标记,有什么建议可以解决下面的问题来处理“@”或另一个库来从文本中删除html?我还需要删除类似&;的内容。在Python:from HTMLParser imp...