网页视频抓取工具 知乎(BeautifulSoup的基础详细用法,你知道几个?(上) )

优采云 发布时间: 2022-02-20 03:06

  网页视频抓取工具 知乎(BeautifulSoup的基础详细用法,你知道几个?(上)

)

  今天的朋友很聪明。只要会爬虫,都知道BeautifulSoup,但是随着知识点越来越多,很多小伙伴可能只知道如何使用这个爬虫工具,却不知道BeautifulSoup的详细使用方法。今天的文章带你了解BeautifulSoup的基本和详细用法。

  什么是美汤?? ?

  BeautifulSoup 是一个 Python 扩展库,可以从 HTML 或 XML 文件中提取数据。BeautifulSoup 通过合适的转换器实现文档导航、查找、修改文档等。它可以很好地处理非标准标记并生成解析树(Parse Tree);它提供导航功能(Navigating),可以简单快速地搜索和修改解析树。BeautifulSoup 技术通常用于分析网页的结构并爬取相应的网页文档。对于不规则的 HTML 文档,提供了一定的补全功能,从而为开发者节省了时间和精力。今天的文章一起来学习BeatifulSoup的详细用法吧~

  环境部署

  安装 BeautifulSoup

  BeautifulSoup 主要通过 pip 命令安装。可以在命令提示符CMD环境中安装,也可以在PyCharm的命令行窗口中安装,即调用pip install bs4命令安装,bs4就是BeautifulSoup4。

  由于我的本地环境已经安装好,显示如下:

  

  如果还没有安装,可以直接输入命令尝试安装。如果安装好了,就可以直接上手了。

  BeautifulSoup扩展包安装成功后,可以在命令行输入from bs4 import BeautifulSoup语句导入扩展包,测试是否安装成功。如果没有报异常错误,则安装成功,如下图:

  

  BeautifulSoup解析HTML获取网页信息

  BeautifulSoup 解析 HTML

  BeautifulSoup解析HTML的原理是创建一个BeautifulSoup对象,然后调用BeautifulSoup包的prettify()函数对网页信息进行格式化输出。

  示例如下:

  from bs4 import BeautifulSoup

html = """

Hello Python

<p>BeatifulSoup 技术详解

"""

# 结果会按照标准的缩进格式的结构输出

soup = BeautifulSoup(html)

print(soup.prettify())

</p>

  使用 BeautifulSoup 解析网页的输出如下:

  

  BeatifulSoup 解析会根据 HTML 标签的缩进输出 HTML 页面的所有标签信息和内容。

  当使用 BeautifulSoup 解析 HTML 文档时,它会将 HTML 文档视为 DOM 文档树。使用 prettify() 函数输出结果时,会自动补全标签。这是 BeautifulSoup 的一个优势,即使 BeautifulSoup 得到一个损坏的标签,它也会生成一个与原创文档内容尽可能一致的转换后的 DOM 树,这通常有助于更正确地采集数据。

  示例如下:输入一个URL,直接用prettify()函数获取

  from bs4 import BeautifulSoup

html = &#39;https://www.baidu.com/&#39;

# 结果会按照标准的缩进格式的结构输出

soup = BeautifulSoup(html)

print(soup.prettify())

  输出如下:

  

<p>

https://www.baidu.com/

</p>

  输出内容自动填充标签并以 HTML 格式输出。

  BeautifulSoup 获取网页标签信息

  以上知识讲解了如何使用 BeautifulSoup 解析网页。解析完网页后,如果想获取某个标签的内容信息,该怎么做呢?比如获取下面超文本的标题,下面就教大家如何使用BeautifulSoup技术获取网页标签信息。获取页面标题的代码如下:

  from bs4 import BeautifulSoup

# 获取标题

def get_title():

#创建本地文件soup对象

soup = BeautifulSoup(open(&#39;test.html&#39;,&#39;rb&#39;), "html.parser")

#获取标题

title = soup.title

print(&#39;标题:&#39;, title)

if __name__ == &#39;__main__&#39;:

get_title()

  输出如下:

  

  获取其他标签的内容也是如此,比如HTML头一个标签

  # 获取a标签内容

def get_a():

#创建本地文件soup对象

soup = BeautifulSoup(open(&#39;test.html&#39;,&#39;rb&#39;), "html.parser")

#获取a标签内容

a = soup.a

print(&#39;a标签的内容是:&#39;, a)

  输出如下:

  a标签的内容是: ddd

  定位标签并获取内容

  前面的内容简单介绍了BeautifulSoup获取title、a等标签,但是如何定位标签并获取对应标签的内容,这里需要用到BeautifulSoup的find_all()函数。详细用法如下:

  def get_all():

soup = BeautifulSoup(open(&#39;test.html&#39;, &#39;rb&#39;), "html.parser")

# 从文档中找到<a>的所有标签链接

for a in soup.find_all(&#39;a&#39;):

print(a)

# 获取<a>的超链接

for link in soup.find_all(&#39;a&#39;):

print(link.get(&#39;href&#39;))

if __name__ == &#39;__main__&#39;:

get_all()

  输出如下:

  ddd

https://www.baidu.com

ddd

  以上是关于 BeautifulSoup 如何定位标签并获取内容的。

  总结

  本文主要讲解BeautifulSoup相关知识点中最基本的部分。下面将讲解 BeautifulSoup 的核心用法。下期见~

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线