本实验在Ubuntu14.04上完成。使用的浏览器是火狐(Firefox 33.0),python版本是2.7.6。
大家都知道用urllib配合正则表达式抓取静态HTML的内容很方便,但是如果网页中有javascript动态生成的内容,urllib就无能为力了。
此时我们要借助一个额外的工具:selenium。它的工作原理是操纵(火狐)浏览器浏览目标网页,等待网页中的javascript全部执行完毕后再对HTML源码进行操作。整个过程就好像是人工操作浏览器转到目标网址查看源代码一样。
从selenium的官网下载selenium-server-standalone-2.44.0.jar。为了大家方便我已经传到了网盘上。下载后设置一下文件的权限:
$ chmod 664 selenium-server-standalone-2.44.0.jar
然后,安装python的selenium工具包:
$ pip install -U selenium
准备工作就绪了,下面开始测试一下这套系统。首先运行起selenium的server:
$ sudo java -jar selenium-server-standalone-2.44.0.jar
注意,整个命令会在输出了几行信息后就不动了。这不是卡死,而是server已经做好准备,等待python脚本的调用。所以这个窗口就不要动了。
开个新窗口执行python脚本:
$ python skk.py
skk.py的内容如下: