BeautifulSoup基本使用

BeautifulSoup基本使用,第1张

BeautifulSoup 官方文档 介绍:BeautifulSoup 是一个可以从HTML或XML文件嫌备中提取数据的Python库。使用BeautifulSoup更多方便,避免使用正则表达式容易出错,提高效率。

BeautifulSoup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,其中一个是 lxml。以下为BeautifulSoup官方文档对支持的解析器优缺点对比。

推荐使用lxml解释器,效率更高。 注意:不同的解析器返回不同的结果

通过答答解析器,BeautifulSoup可以传入一段字符串或文件。

Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种: Tag , NavigableString , BeautifulSoup , Comment 。接下来使用以下文档进行说明。

可以看到a点只是返回第一个,如果需要历遍全部则需要用find_all('a')。

tag有多种属性,其中两个最重要的就是name和attributes。name一般返回标签本身(soup返回document), 注意,tag属性 *** 作方法和字典一样。

上面说到节点选择可以直接利用标签,如<head>标签用soup.head,也可通过name和attrs可以直接获取属性, *** 作和字典一样。以上是直接获芹举毁取的方式,当想要获取标签的子节点、父节点、兄弟节点则需要通过另外的方法。

.children 是一个llist生成器,可以对子节点进行历遍循环

.descendants 是返回所有子孙节点,比较children和descendants的输出区别

工具/原料

安装了Python的腊胡电脑一台

方法/步骤

BeautifulSoup的安装过程也列在这里,方便读者:

进入BeautifulSoup的目录,执行

python setup.py build

python setup.py install

安肆局启装成功后发现import这个模块会出错

from XX import XX也不可以

而执行 from bs4 import BeautifulSoup就成功了。很奇怪,但是就是这样,模块名是bs4,它里面有BeautifulSoup对象。

bs4又该怎么知道呢?进入Python,执行help('modules'),然后需要等一段时间,python会裂如列出所有已安装模块。从中找和BeautifulSoup比较接近的,就是模块名了,bs4是首字母缩写,就是我们导入时需要的模块名。

创建一个新网站,一开始没有内容,通常需要抓取其他人的网页内容,一般的 *** 作步骤如下拆埋:

根据url下载网昌御简页内容,针对每个网页的html结构特征,利用正则表达式,或者其他的方式,做文本解析,提取出想要的正文。

为每个网页写特征分析这个还是太耗费开发的时间,我的思路是这样的。

Python的BeautifulSoup包大家都知道吧,

import BeautifulSoup

soup = BeautifulSoup.BeautifulSoup(html)

利用这个包先把html里script,style给清理了:

[script.extract() for script in soup.findAll('script')]

[style.extract() for style in soup.findAll('style')]

清理完成后,这个包有一个prettify()函数,把代码格式给搞的标准一些:

soup.prettify()

然后用正则表达式,把所有的HTML标签全部清理了:

reg1 = re.compile("<[^>]*>")

content = reg1.sub('',soup.prettify())

剩下的都是纯文本耐裤的文件了,通常是一行行的,把空白行给排除了,这样就会知道总计有多少行,每行的字符数有多少,我用excel搞了一些每行字符数的统计


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12255276.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存