• 玩个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  了

  • 相关阅读:
    51单片机入门(三)
    51单片机入门笔记(二)
    51单片机入门笔记
    团队项目-需求分析报告
    团队项目-选题报告
    第一次结对编程作业
    第一次个人编程作业
    第一次博客作业
    tomcat的安装和配置
    循环
  • 原文地址:https://www.cnblogs.com/alexgl2008/p/12193421.html
Copyright © 2020-2023  润新知