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

  • 相关阅读:
    2019年9月15日晚间测试-T1
    机房巨佬的随机名称生成器
    初来乍到
    GKurumi记
    GKurumi记
    小P的团战
    什么才算是真正的编程能力?
    java冒泡排序和快速排序
    “转行做程序员”很难?这里有4个重要建议
    Linux文件I/O(一)
  • 原文地址:https://www.cnblogs.com/alexgl2008/p/12193421.html
Copyright © 2020-2023  润新知