您的位置:首页 > 其它

ajax异步加载网页爬虫

2017-07-14 11:05 253 查看
一般的网页,使用httpclient就能做到,但httpclient的设计初衷是一个基于http协议的客户端,它并不是一个浏览器,也不具备浏览器的功能,所以针对ajax异步加载的网页,就无能为力了.

我本想也用java来做ajax异步加载网页的爬虫,只可惜使用selenium的jar包时,出了很多问题,我没能解决.最后还是选择用了Python来写.

搭建环境

1.下载selenium,selenium可以用来模拟浏览器,它和浏览器驱动或者无界面浏览器驱动完美结合.

下载,我们用Python的开发库:

Python开发库:

https://pypi.python.org/pypi/selenium/

java开发包:

http://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java

python install -U selenium



2.下载PhantomJS,这是一个无界面浏览器,通常用于web测试,用来做爬虫是非常不错的,当然,也可以用其他浏览器驱动.

下载地址:

http://phantomjs.org/

给phantomJS配置环境变量:

我直接把phantomJS.exe放到jdk的bin目录下,这样就不用配置了.

简单例子

from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get("http://bkjw.sxu.edu.cn/")
assert '山西大学教务网络管理系统' in driver.title
print(driver.title)
driver.quit()


需要注意的是get方法会一直等到页面被完全加载,然后才会继续程序

而ajax是异步加载网页,会导致WebDriver 不知道什么时候加载玩了网页

网上有一篇selenium的教程,讲得不错

http://cuiqingcai.com/2599.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: