📅  最后修改于: 2020-11-09 14:25:00             🧑  作者: Mango
由于BeautifulSoup不是标准的Python库,因此我们需要先安装它。我们将安装最新的BeautifulSoup 4库(也称为BS4)。
为了隔离我们的工作环境,以免干扰现有的设置,我们首先创建一个虚拟环境。
虚拟环境允许我们为特定项目创建Python的隔离工作副本,而不会影响外部设置。
安装任何Python软件包机器的最佳方法是使用pip,但是,如果尚未安装pip(您可以在命令或shell提示符中使用–“ pip –version”进行检查),则可以通过以下命令进行安装-
$sudo apt-get install python-pip
要在Windows中安装pip,请执行以下操作-
>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”下。
要退出虚拟环境,请运行停用。
(myEnv) C:\Users\yadur>deactivate
C:\Users\yadur>
当我们的虚拟环境准备就绪时,现在让我们安装beautifulsoup。
由于BeautifulSoup不是标准库,因此我们需要安装它。我们将使用BeautifulSoup 4软件包(称为bs4)。
要使用系统软件包管理器在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中安装beautifulsoup4非常简单,特别是如果您已经安装了pip。
>pip install beautifulsoup4
因此,现在在我们的计算机中安装了beautifulsoup4。让我们来谈谈安装后遇到的一些问题。
在Windows机器上,您可能会遇到,主要是通过以下方式安装了错误的版本-
摆脱上述两种情况的最佳方法是再次重新安装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解析器,请使用命令-
$apt-get install python-lxml
$apt-get insall python-html5lib
$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)
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
一项常见的任务是提取网页中的所有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
http://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提取有用的信息。
现在让我们在上面的示例中更多地了解“汤”。