基于DevTools协议+Chromium headless的客户端爬虫框架

之前的做法是使用PhantomJS以及一个html+嵌套iframe包含目标网站URL+跨域dom操作的简单性能优化。

PhantomJS实现下面的核心需求:
(1)无头模式,然而PhantomJS内核基于老版本的QtWebKit,与最新版本的Chromium代码相比,版本太老了,很多特性用不了(虽然目前国内网站应该也还没开始用上这些?比如ServiceWorker、CSS Custom Properties、Web Components等等)
(2)可以等待PhantomJS将页面load完成之后,注入JS执行,这之间需要支持下列核心特性:
    2.1 可以通过注入JS代码的方法导入外部JS资源,一般就是动态插入一个<script>元素,并设置src属性;
    2.2 可以用注入的JS代码来自动化地控制页面的scroll,或者根据特定网站的代码直接调用相关的JS Event Handler函数
    2.3 当然,PhantomJS应该允许从外部直接触发用户输入事件,比如根据某个CSS Selector Path定位到某个Element,然后触发其click事件,浏览器本身通常不支持这么做,但是浏览器的扩展,比如WebDriver这样的原本设计用于自动化Web测试的工具支持这么做

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值