想玩个爬虫,爬些数据玩玩,不成想把自己玩“进去”了
想爬这个新浪的股票 大额交易页面
本以为用 HttpClient 直接爬链接,结果发现这个页面中,翻页数据压根就是动态赋值的,根本没有,那我根本无法获知总共有多少页数据,难不成从第一页一直翻页对比,如果与前一页不相同再入库?这不是扯吗,效率太低了;
于是从 HttpClient 追到 webKit ,又从 webKit 追到 JxBrowser ,貌似都不行,有这么邪乎吗?
其实原理都差不多,无非都是解析网页,有的是直接抓网页流,适合静态页面,动态页面,由JS加载数据的,就玩不转了。
找了一圈,发现一个奇葩 SeimiAgent
原来他是模拟 webKit 然后再处理的,下面是他对这个工具的描述
SeimiAgent是基于QtWebkit开发的可在服务器端后台运行的一个webkit服务,可以通过SeimiAgent提供的http接口向SeimiAgent发送一个load请求(需求加载的URL以及对这个页面接受的渲染时间或是使用什么代理等参数),通过SeimiAgent去加载并渲染想要处理的动态页面,然后将渲染好的页面直接返给调用方进行后续处理,所以运行的SeimiAgent服务是与语言无关的,任何一种语言或框架都可以通过SeimiAgent提供的标准http接口来获取服务。SeimiAgent的加载渲染环境都是通用浏览器级的,所以不用担心他对动态页面的处理能力。同时支持渲染生成页面快照(png)和PDF,亦支持自定义js脚本处理基本渲染后的页面。
不管怎么样,先试试吧。
-----------SeimiAgent 废了,几乎与 HttpClient一样,接着换方法--------------------------------------
参考 https://blog.csdn.net/Java_Mrsun/article/details/85090431
结果发现,新的JAR文件不支持 ChromeDriverService
我草, 找了半天 发现一个有用的 http://www.it1352.com/987635.html
NIMA 不会吧,版本不支持还玩个P
后来再找 https://stackoverflow.com/questions/34095684/chromedriverservice-builder-cannot-be-resolved
NM 试试吧,也许是包名改了
用上面老外的那个 POM.XML 文件中的版本;
CA 搞定编译通过
仔细回想起来,我最初用 org.openqa.selenium 这个关键字到阿里的MAVEN库中查版本,结果发现的版本都是 0.9 之类的版本;
结果引入进来,死活不认识;
看来阿里的MAVEN不提供版本时间也是祸害啊。
后记:
经过多次调试,可以顺利使用 org.openqa.selenium 了
以下网址作为参考
https://blog.csdn.net/zhuyiquan/article/details/80148767
后来仔细研究了 应用场景解析后的源码, 基本上能够通过 HttpClient 完成,所以直接就放过 selenium 了