首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python爬虫入门,快速抓取大规模数据4

当前大部分网站都使用JS动态的加载内容,浏览器执行JS并生成网页内容。因为Python的requests库不会像浏览器一样执行JS,所以抓取到的内容并不是最终网页呈现内容。解决这个问题的方法也很简单,我们使用浏览器来执行JS生成内容,然后再提取需要的数据。

selenium webdriver简介

selenium webdriver就是我们这里要用来控制浏览器执行JS生成内容的工具。WebDriver是通过调用浏览器原生的自动化API直接驱动浏览器,目前主流的浏览器都提供自动化API。因此我们可以很容易的通过webdriver提供的API操纵浏览器访问网页生成内容,并返回数据。

通过python的pip工具我们可以很方便的安装selenium模块, pip install selenium。安装完成之后,让我们简单的试一试webdriver驱动浏览器打开网页.

爬虫实例中的应用

现在让我们回到我们的爬虫的例子上,原来我们是用requests库抓取内容,现在我们使用webdriver驱动浏览器的方式来获取网页内容。这样就能获取到执行了JS动态加载内容的网页。

通常浏览器都会打开一个窗口,但对于爬虫而言这是没有必要的。幸运的是,我们可以使用phantomjs来替代浏览器。PhantomJS是一个基于webkit的无UI的浏览器,几乎所有在浏览器上能做到的事情也能在PhantomJs上做到。PhantomJs广泛的用于网络监测、Web测试和页面访问自动化。

使用代码上和我们前面使用浏览器的并无很多的不同,唯一的区别也只在于我们初始化浏览器代码的不同。

总结

这一部分中我们简单的讨论了如何使用webdriver获取动态加载网页的内容。事实上webdriver还有很多非常有趣的应用,后面有机会我们会再看看。继续阅读下一部分。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180611A1TTAT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券