玩个JAVA爬虫,没想玩大

想玩个爬虫,爬些数据玩玩,不成想把自己玩“进去”了

想爬这个新浪的股票 大额交易页面 

本以为用 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  了

posted @ 2020-01-14 18:04  苦行者的刀  阅读(230)  评论(0编辑  收藏  举报