• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

爬虫的解析方式二:Beautifulsoup

python 搞代码 4年前 (2022-01-09) 16次浏览 已收录 0个评论

众多语言都能进行爬虫,但基于python的爬虫显得更加简洁,方便。爬虫也成了python语言中必不可少的一部分。爬虫的解析方式也是多种多样。

Requests库的用法大家肯定已经熟练掌握了,但是当我们使用Requests获取到网页的 HTML 代码信息后,我们要怎样才能抓取到我们想要的信息呢?我相信大家肯定尝试过很多办法,比如字符串的 find 方法,还有高级点的正则表达式。虽然正则可以匹配到我们需要的信息,但是我相信大家在匹配某个字符串一次一次尝试着正则匹配的规则时,一定很郁闷。

那么,我们就会想有没有方便点的工具呢。答案是肯定的,我们还有一个强大的工具,叫BeautifulSoup。有了它我们可以很方便地提取出HTML或XML标签中的内容,这篇文章就让我们了解下BeautifulSoup的常用方法吧。

上一篇给大家讲解的是爬虫的解析方式一:JOSN解析,本篇给大家带来Beautifulsoup解析。


什么是BeautifulSoup?

Python的网页解析可以用正则表达式去完成,那么我们在写的时候,要挨个的去把代码拿出来匹配,而且还要写匹配的规则,整体实现起来就很复杂。BeautifulSoup呢,它是一个方便的网页解析库,处理高效,支持多种解析器。大部分情况下,利用它我们不在需要编写正则表达式就可以方便的实现网页信息的提取。

官方文档

安装:$ pip install beautifulsoup4

BeautifulSoup是一个网页解析库,它支持很多解析器,不过最主流的有两个。一个是Python标准库,一个是lxml HTML 解析器。两者的使用方法相似:

from bs4 import BeautifulSoup # Python的标准库BeautifulSoup(html, 'html.parser') # lxmlBeautifulSoup(html, 'lxml')

Python内置标准库的执行速度一般,但是低版本的Python中,中文的容错能力比较差。lxmlHTML 解析器的执行速度快,但是需要安装 C语言的依赖库。

lxml的安装

由于lxml安装需要依赖C语言库,所以当lxml在Windows上安装时,我们会发现各种奇怪的报错,当然脸好的使用pip install lxml

安装也是可以成功的。不过大部分人都是会倒在这里。

这里推荐大家使用lxml的.whl文件来安装。首先我们需要安装一下wheel库,有了这个库我们才可以正常安装.whl文件。pip install wheel

从官方网站下载与系统,Python版本匹配的lxml文件。

另外,不知道自己系统和python版本信息的伙伴。需要进入系统管理员工具(CMD)或者python的 IDLE,输入以下代码:

import pip print(pip.pep425tags.get_supported())

这时我们就可以看到打印出来的Python版本信息了。
下载好lxml的文件后,我们需要找到文件的位置,然后进入管理员工具,使用pip安装:pip install whl文件的全名

安装完成后,可以进入Python,import一下,如果没有报错,那么恭喜你安装成功。
如果有的伙伴觉得麻烦,那我推荐大家安装anaconda 下载地址(如果安装速度慢,可以找国内镜像),不知道是什么的小伙伴可以谷歌一下,有了他,那些在windows上pip安装出错的问题将不再存在。

BeautifulSoup的基本标签选择方法

虽然Python内置的标准库解析器还不错,但是我还是推荐大家使用lxml,因为它够快。那么后面的代码我们都是用lxml解析器来进行演示。
我们先导入官方文档的例子:

html_doc = """<html><head><title>The Dormouse's st<p style="color:transparent">本文来源gao!%daima.com搞$代*!码网1</p>ory</title></head><body><p class="title"><b>The Dormouse's story</b></p> <p class="story">Once upon a time there were three little sisters; and their names were<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;and they lived at the bottom of a well.</p> <p class="story">...</p>"""

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:爬虫的解析方式二:Beautifulsoup

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址