我们现在将学习如何处理动态网页或有很多功能的网页,而不仅仅是 HTML/CSS。这些页面用beautifulsoup 爬取比较棘手,因为有时代码发生在服务器端,而beautifulsoup 需要让浏览器运行它。
如果有一种方法可以让我们编写代码并让我们的代码假装它是浏览器,那岂不是很好?……恰好,这正是本文要讨论的内容!
现在,我第一次在这篇文章中读到了这一点,并且我一直在这篇文章中更专注于确切的实现,因此有关更多详细信息,请务必查看!
1. 下载 Chrome 或 Firefox
目前我所知道的只有这两个具有此功能,因此请务必使用其中之一。在本文中,我们使用Firefox。
2. 下载网络驱动程序
我们将使用的网络驱动程序是geckodriver,您可以在该链接的底部找到所有下载。下载后,从下载中提取文件(只需双击 zip 文件)。
Web 驱动程序有点挑剔,并且在操作系统上运行
得不太好,因此我们需要:将 geckodriver 移动到可执行路径所在的位置。请查看本文以了解如何使用 Windows 进行操作。
我们可以通过运行来找出我们的可执行路径在哪里:
然后我们可以:
-
cp
geckodriver 文件从 zip 到您的$PATH
变量告诉您的位置之一(运行后echo $PATH
) -
$PATH
向您的$PATH
环境变量添加一个新位置,并将可执行文件 geckodriver 放入其中。项目地址:https://www.yunduoketang.com/article/zxjy46.html
然后重新启动终端以使更改生效。如果您使用的是 MacOS(我就是),您可能还需要对应用程序进行公证。你可以通过运行来做到这一点:
3.开始用python编码!
运行后:pip install selenium
,您现在可以开始使用网络驱动程序了!而不是拉动动态网页网址,requests.get
你会拉动它driver.get
,像这样: