如何使用 Python 和 Beautiful Soup 抓取任何网站(动态网页)

我们现在将学习如何处理动态网页或有很多功能的网页,而不仅仅是 HTML/CSS。这些页面用beautifulsoup 爬取比较棘手,因为有时代码发生在服务器端,而beautifulsoup 需要让浏览器运行它。

如果有一种方法可以让我们编写代码并让我们的代码假装它是浏览器,那岂不是很好?……恰好,这正是本文要讨论的内容!

现在,我第一次在这篇文章中读到了这一点,并且我一直在这篇文章中更专注于确切的实现,因此有关更多详细信息,请务必查看!

1. 下载 Chrome 或 Firefox

目前我所知道的只有这两个具有此功能,因此请务必使用其中之一。在本文中,我们使用Firefox

2. 下载网络驱动程序

我们将使用的网络驱动程序是geckodriver,您可以在该链接的底部找到所有下载。下载后,从下载中提取文件(只需双击 zip 文件)。

Web 驱动程序有点挑剔,并且在操作系统上运行
得不太好,因此我们需要:将 geckodriver 移动到可执行路径所在的位置。请查看本文以了解如何使用 Windows 进行操作。

我们可以通过运行来找出我们的可执行路径在哪里:

如何使用 Python 和 Beautiful Soup 抓取任何网站(动态网页)

然后我们可以:

  1. cpgeckodriver 文件从 zip 到您的$PATH变量告诉您的位置之一(运行后echo $PATH
  2. $PATH向您的$PATH环境变量添加一个新位置,并将可执行文件 geckodriver 放入其中。项目地址:https://www.yunduoketang.com/article/zxjy46.html

然后重新启动终端以使更改生效。如果您使用的是 MacOS(我就是),您可能还需要对应用程序进行公证。你可以通过运行来做到这一点:

如何使用 Python 和 Beautiful Soup 抓取任何网站(动态网页)

3.开始用python编码!

运行后:pip install selenium,您现在可以开始使用网络驱动程序了!而不是拉动动态网页网址,requests.get你会拉动它driver.get,像这样:

如何使用 Python 和 Beautiful Soup 抓取任何网站(动态网页)

 

上一篇:Python爬虫常用库总结


下一篇:bs4解析网页、lxml+xpath解析网页、xlwt存储到Excel、sqlite3存储到数据库