- Beautiful Soup教程
- Beautiful Soup - 主页
- Beautiful Soup - 概述
- Beautiful Soup - 安装
- Beautiful Soup - 汤页面
- Beautiful Soup - 各种物体
- Beautiful Soup - 按标签导航
- Beautiful Soup - 寻找树
- Beautiful Soup-修改树
- Beautiful Soup - 编码
- Beautiful Soup - 美丽的物体
- 仅解析文档的部分
- Beautiful Soup - 故障排除
- Beautiful Soup有用的资源
- Beautiful Soup - 快速指南
- Beautiful Soup - 有用的资源
- Beautiful Soup - 讨论
Beautiful Soup - 安装
由于BeautifulSoup不是标准的python库,我们需要先安装它。我们将安装最新的 BeautifulSoup 4 库(也称为 BS4)。
为了隔离我们的工作环境以免干扰现有设置,让我们首先创建一个虚拟环境。
创建虚拟环境(可选)
虚拟环境允许我们为特定项目创建独立的 python 工作副本,而不会影响外部设置。
安装任何 python 软件包机器的最佳方法是使用 pip,但是,如果尚未安装 pip(您可以在命令或 shell 提示符中使用 –“pip –version”进行检查),则可以通过给出以下命令进行安装 -
Linux环境
$sudo apt-get install python-pip
Windows环境
要在 Windows 中安装 pip,请执行以下操作 -
从https://bootstrap.pypa.io/get-pip.py或从 github下载 get-pip.py到您的计算机。
打开命令提示符并导航到包含 get-pip.py 文件的文件夹。
运行以下命令 -
>python get-pip.py
就这样,pip 现在已经安装在你的 Windows 机器上了。
您可以通过运行以下命令来验证您安装的 pip -
>pip --version pip 19.2.3 from c:\users\yadur\appdata\local\programs\python\python37\lib\site-packages\pip (python 3.7)
安装虚拟环境
在命令提示符中运行以下命令 -
>pip install virtualenv
运行后,您将看到以下屏幕截图 -
以下命令将在当前目录中创建一个虚拟环境(“myEnv”) -
>virtualenv myEnv
截屏
要激活虚拟环境,请运行以下命令 -
>myEnv\Scripts\activate
在上面的屏幕截图中,您可以看到我们有“myEnv”作为前缀,这告诉我们我们处于虚拟环境“myEnv”下。
要退出虚拟环境,请运行 deactivate。
(myEnv) C:\Users\yadur>deactivate C:\Users\yadur>
我们的虚拟环境已经准备好了,现在让我们安装 beautifulsoup。
安装BeautifulSoup
由于BeautifulSoup不是标准库,我们需要安装它。我们将使用 BeautifulSoup 4 包(称为 bs4)。
Linux机器
要使用系统包管理器在 Debian 或 Ubuntu Linux 上安装 bs4,请运行以下命令 -
$sudo apt-get install python-bs4 (for python 2.x) $sudo apt-get install python3-bs4 (for python 3.x)
您可以使用 easy_install 或 pip 安装 bs4 (以防您在使用系统打包程序安装时发现问题)。
$easy_install beautifulsoup4 $pip install beautifulsoup4
(如果您使用的是 python3,您可能需要分别使用 easy_install3 或 pip3)
Windows机
在 Windows 中安装 beautifulsoup4 非常简单,特别是如果您已经安装了 pip。
>pip install beautifulsoup4
现在beautifulsoup4已经安装在我们的机器上。说一下安装后遇到的一些问题。
安装后出现问题
在 Windows 机器上,您可能会遇到安装错误版本的错误,主要是通过 -
错误:ImportError“没有名为 HTMLParser 的模块”,那么您必须在 Python 3 下运行 python 2 版本的代码。
错误:ImportError“没有名为 html.parser 的模块”错误,那么您必须在 Python 2 下运行 Python 3 版本的代码。
摆脱上述两种情况的最佳方法是再次重新安装 BeautifulSoup,完全删除现有安装。
如果您在 ROOT_TAG_NAME = u'[document]' 行上收到SyntaxError“无效语法”,那么您需要将 python 2 代码转换为 python 3,只需安装包 -
$ python3 setup.py install
或者通过在 bs4 目录上手动运行 python 的 2 到 3 转换脚本 -
$ 2to3-3.2 -w bs4
安装解析器
默认情况下,Beautiful Soup 支持Python 标准库中包含的HTML 解析器,但它也支持许多外部第三方Python 解析器,例如lxml 解析器或html5lib 解析器。
要安装 lxml 或 html5lib 解析器,请使用命令 -
Linux机器
$apt-get install python-lxml $apt-get insall python-html5lib
Windows机
$pip install lxml $pip install html5lib
一般来说,用户使用lxml来提高速度,如果您使用旧版本的python 2(2.7.3版本之前)或python 3(3.2.2之前版本),建议使用lxml或html5lib解析器,因为python的内置HTML解析器是处理旧版本不太好。
跑美汤
现在是时候在其中一个 html 页面中测试我们的 Beautiful Soup 包了(以网页 – https://www.tutorialspoint.com/index.htm为例,您可以选择您想要的任何其他网页)并从中提取一些信息它。
在下面的代码中,我们尝试从网页中提取标题 -
from bs4 import BeautifulSoup import requests url = "https://www.tutorialspoint.com/index.htm" req = requests.get(url) soup = BeautifulSoup(req.text, "html.parser") print(soup.title)
输出
<title>H2O, Colab, Theano, Flutter, KNime, Mean.js, Weka, Solidity, Org.Json, AWS QuickSight, JSON.Simple, Jackson Annotations, Passay, Boon, MuleSoft, Nagios, Matplotlib, Java NIO, PyTorch, SLF4J, Parallax Scrolling, Java Cryptography</title>
一项常见任务是提取网页中的所有 URL。为此,我们只需要添加以下代码行 -
for link in soup.find_all('a'): print(link.get('href'))
输出
https://www.tutorialspoint.com/index.htm https://www.tutorialspoint.com/about/about_careers.htm https://www.tutorialspoint.com/questions/index.php https://www.tutorialspoint.com/online_dev_tools.htm https://www.tutorialspoint.com/codingground.htm https://www.tutorialspoint.com/current_affairs.htm https://www.tutorialspoint.com/upsc_ias_exams.htm https://www.tutorialspoint.com/tutor_connect/index.php https://www.tutorialspoint.com/whiteboard.htm https://www.tutorialspoint.com/netmeeting.php https://www.tutorialspoint.com/index.htm https://www.tutorialspoint.com/tutorialslibrary.htm https://www.tutorialspoint.com/videotutorials/index.php https://store.tutorialspoint.com https://www.tutorialspoint.com/gate_exams_tutorials.htm https://www.tutorialspoint.com/html_online_training/index.asp https://www.tutorialspoint.com/css_online_training/index.asp https://www.tutorialspoint.com/3d_animation_online_training/index.asp https://www.tutorialspoint.com/swift_4_online_training/index.asp https://www.tutorialspoint.com/blockchain_online_training/index.asp https://www.tutorialspoint.com/reactjs_online_training/index.asp https://www.tutorix.com https://www.tutorialspoint.com/videotutorials/top-courses.php https://www.tutorialspoint.com/the_full_stack_web_development/index.asp …. …. https://www.tutorialspoint.com/online_dev_tools.htm https://www.tutorialspoint.com/free_web_graphics.htm https://www.tutorialspoint.com/online_file_conversion.htm https://www.tutorialspoint.com/netmeeting.php https://www.tutorialspoint.com/free_online_whiteboard.htm https://www.tutorialspoint.com https://www.facebook.com/tutorialspointindia https://plus.google.com/u/0/+tutorialspoint http://www.twitter.com/tutorialspoint http://www.linkedin.com/company/tutorialspoint https://www.youtube.com/channel/UCVLbzhxVTiTLiVKeGV7WEBg https://www.tutorialspoint.com/index.htm /about/about_privacy.htm#cookies /about/faq.htm /about/about_helping.htm /about/contact_us.htm
同样,我们可以使用 beautifulsoup4 提取有用的信息。
现在让我们更多地了解上面例子中的“汤”。