爬虫系列:在 Python 中用 Selenium 执行 Javascript

Selenium 是一个强大的网络数据采集工具,其最初是为网站自动化测试而开发的。近几年,它还被广泛用于获取精确的网站快照,因为它们可以直接运行在浏览器上。Selenium 可以让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。

Selenium 自己不带浏览器,它需要与第三方浏览器结合在一起使用。例如,如果你在 Firefox 上运行 Selenium,可以直接看到一个 Firefox 窗口被打开,进入网站,然后执行你在代码中设置的动作。虽然这样可以看得更清楚,但是我更喜欢让程序在后台运行,所以我用一个叫 PhantonJS 的工具代替真实的浏览器。

PhantomJS 是一个“无头”(headles)浏览器。它会把网站加载到内存并执行页面上的 JavaScript,但是它不会向用户展示网页的图形界面。把 Selenium 和 PhantomJS 结合在一起,就可以运行一个非常强大的网络爬虫了,可以处理 cookie、JavaScript、header、以及任何你需要做的事情。

你可以从 PyPI 网站 下载 Selenium 库,也可以用第三方管理器(像 pip)用命令行安装。

PhantomJS 也可以从它的官方网站下载。因为 PhantomJS 是一个功能完善(虽然无头)的浏览器,并非一个 Python 库,所以它不需要像 Python 的其他库一样安装,也不能用 pip 安装。

虽然有很多页面都用 Ajax 加载数据(尤其是Google),我们找到了一个页面全部是由 JavaScript 生成的,同时也是一个 PWA 应用,应用名称是 SMS America

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值