ajax异步加载网页爬虫
2017-07-14 11:05
253 查看
一般的网页,使用httpclient就能做到,但httpclient的设计初衷是一个基于http协议的客户端,它并不是一个浏览器,也不具备浏览器的功能,所以针对ajax异步加载的网页,就无能为力了.
我本想也用java来做ajax异步加载网页的爬虫,只可惜使用selenium的jar包时,出了很多问题,我没能解决.最后还是选择用了Python来写.
下载,我们用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目录下,这样就不用配置了.
需要注意的是get方法会一直等到页面被完全加载,然后才会继续程序
而ajax是异步加载网页,会导致WebDriver 不知道什么时候加载玩了网页
网上有一篇selenium的教程,讲得不错
http://cuiqingcai.com/2599.html
我本想也用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
相关文章推荐
- Scrapy爬虫框架教程-- 抓取AJAX异步加载网页
- Scrapy爬虫框架教程(四)-- 抓取AJAX异步加载网页
- 网页上通过ajax异步加载的数据有什么办法抓取到吗?
- python爬虫日志(3)-爬取异步加载网页
- 使用python+selenium制作浏览器爬虫,彻底解决ajax异步加载问题(待更新)
- scrapy入门实战练习(三)----抓取AJAX异步加载网页
- 网页异步加载之AJAX理解
- Java爬虫——phantomjs抓取ajax动态加载网页
- 爬虫知识点(ajax异步加载,JavaScript 动态刷新,phantomjs + selenium模拟登陆)
- ajax异步加载页面,减少用户面对空白网页时间
- Ajax异步加载web网页数据
- Java爬虫——phantomjs抓取ajax动态加载网页
- php 爬虫如何爬取ajax异步加载文件
- 怎么能在ajax加载完之后再加载网页
- ajax 实现网页异步数据替换
- 爬虫获取ajax异步请求的html内容
- ajax异步加载图片实例分析
- 使用爬虫抓取网站异步加载数据
- ajax异步加载的js文件如何在浏览器中打断点进行调试
- python 异步采集,网页爬虫编写 | 一步一步学python