网页视频抓取工具 知乎(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 = 'https://www.baidu.com/'
# 结果会按照标准的缩进格式的结构输出
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('test.html','rb'), "html.parser")
#获取标题
title = soup.title
print('标题:', title)
if __name__ == '__main__':
get_title()
输出如下:
获取其他标签的内容也是如此,比如HTML头一个标签
# 获取a标签内容
def get_a():
#创建本地文件soup对象
soup = BeautifulSoup(open('test.html','rb'), "html.parser")
#获取a标签内容
a = soup.a
print('a标签的内容是:', a)
输出如下:
a标签的内容是: ddd
定位标签并获取内容
前面的内容简单介绍了BeautifulSoup获取title、a等标签,但是如何定位标签并获取对应标签的内容,这里需要用到BeautifulSoup的find_all()函数。详细用法如下:
def get_all():
soup = BeautifulSoup(open('test.html', 'rb'), "html.parser")
# 从文档中找到<a>的所有标签链接
for a in soup.find_all('a'):
print(a)
# 获取<a>的超链接
for link in soup.find_all('a'):
print(link.get('href'))
if __name__ == '__main__':
get_all()
输出如下:
https://www.baidu.com
ddd
以上是关于 BeautifulSoup 如何定位标签并获取内容的。
总结
本文主要讲解BeautifulSoup相关知识点中最基本的部分。下面将讲解 BeautifulSoup 的核心用法。下期见~