spash和selenium浅析
Splash是什么:
Splash是一个Javascript渲染服务。它是一个实现了HTTP API的轻量级浏览器,Splash是用Python实现的,同时使用Twisted和QT。Twisted(QT)用来让服务具有异步处理能力,以发挥webkit的并发能力。
为什么要有Splash:
为了更加有效的制作网页爬虫,由于目前很多的网页通过javascript模式进行交互,简单的爬取网页模式无法胜任javascript页面的生成和ajax网页的爬取,同时通过分析连接请求的方式来落实局部连接数据请求,相对比较复杂,尤其是对带有特定时间戳算法的页面,分析难度较大,效率不高。而通过调用浏览器模拟页面动作模式,需要使用浏览器,无法实现异步和大规模爬取需求。鉴于上述理由Splash也就有了用武之地。一个页面渲染服务器,返回渲染后的页面,便于爬取,便于规模应用
Selenium是什么:
ason Huggins在2004年发起了Selenium项目,当时身处ThoughtWorks的他,为了不想让自己的时间浪费在无聊的重复性工作中,幸运的是,所有被测试的浏览器都支持Javascript。Jason和他所在的团队采用Javascript编写一种测试工具来验证浏览器页面的行为;这个JavaScript类库就是Selenium core,同时也是seleniumRC、Selenium IDE的核心组件。Selenium由此诞生。
关于Selenium的命名比较有意思,当时QTP mercury是主流的商业自化工具,是化学元素汞(俗称水银),而Selenium是开源自动化工具,是化学元素硒,硒可以对抗汞。
因为Selenium和Webdriver的合并,所以,Selenium 2.0由此诞生。简单用公式表示为:Selenium 2.0 = Selenium 1.0 + WebDriver
两者的区别:
selenium是浏览器测试自动化工具,很容易完成鼠标点击,翻页等动作,确定是一次只能加载一个页面,无法异步渲染页面,也就限制了selenium爬虫的抓取效率
splash可以实现异步渲染页面,可以同时渲染几个页面。缺点是在页面点击,,模拟登陆方面没有selenium灵活。
最新文章
- linux下设置固定IP
- Ucenter,Discuz
- windows 版的julia repl 启动时间已经大大优化!
- 如何在nopcommerce3.3注册页面添加密码强度检查仪?
- 【MVC 4】2.使用 Razor
- 基于Selenium2+Java的UI自动化(1) - 原理和环境搭建
- lufylegend库 LTextField
- centos6.5中 linux 升级内核
- 2018-计算机系机试(第二批)-D-最小差值
- 44_redux_comment应用_redux版本_同步功能
- 【记一次pull request的惨痛教训】不可见的分隔符之Zero-with-space
- 00、Word Count
- 【读书笔记】iOS-正则表达式
- 如何在mmseg3添加词库
- Maven插件系列之spring-boot-maven-plugin
- iproute2 对决 net-tools
- C++两个矩阵相乘
- Ubuntu输入法切换问题
- centos 6.5 ftp服务配置及客户端使用
- appium移动自动化测试---api键盘操作