1. 缘起
有学弟问起如何抓取js动态加载的网页,具体的场景就是北理工本科生管理系统的菜单栏都是需要鼠标放置到上面才会出现下拉菜单。我当时推荐用python的selenium包调PhantomJS去加载,通过move_to_element模拟鼠标移动到网页元素的过程。结果学弟试过之后发现下拉菜单并没有出现,我当时怀疑是因为教务处的破系统只能需要IE内核才能用的原因,于是决定自己试试,对比了一下PhantomJS的效果。
2. 方法
利用selenium包调用IE浏览器加载网页
3. 工具
python 2.7+selenium包+InternetExplorerDriver/PhantomJS
配置: pip install selenium
InternetExplorerDriver:
从
http://selenium-release.storage.googleapis.com/index.html某个版本里面下载IEDriverServer
我自己是在2.53版本中下载的IEDriverServer_x64_2.53.1.zip解压后得到IEDriverServer.exe,请将其配置到环境变量里,这里我直接把它放到了Python安装路径下的Scripts(已配置到Path)中。
PhantomJS.exe:
解压后在bin目录下找到phantomjs.exe,配置环境变量,同样也可以放到python的Scripts目录下。
4. 过程
a) 用PhantomJS尝试
(略)
通过截图发现move_to_element没有成功
b) selenium+InternetExplorerDriver
首先得到IE浏览器的实例
browser = webdriver.Ie()