zoukankan      html  css  js  c++  java
  • Java爬虫第一步遇到的坑

    最近,跟着一个视频来学习,视频上爬取36kr这个网站,我也跟着写了,感觉挺简单的,使用Jsoup很快就拿到页面上的文字。谁知再分析网页获得自己需要的数据的时候,只能获得一个根标签,里面什么也没有,第一次爬虫遇到这样的问题,顿时懵逼了。问了几个人之后,自己明白了这是因为我要抓取的页面数据,它是使用react来实现的,也就是通过javaScript的库渲染完成的。到此我基本知道了原因和接下来怎么抓取。

    Jsoup不支持解析javaScript动态渲染的页面,在这里选取了HtmlUnit来解析。

    首先到官网(HtmlUnit)上下载jar包。

    看下HtmlUnit的解析过程:

    final WebClient webClient=new WebClient();
    webClient.getOptions().setCssEnabled(false);//关闭css
    webClient.getOptions().setJavaScriptEnabled(true);//这个要为true,false依然获取不到
    final HtmlPage page=webClient.getPage("https://36kr.com/");
    
    HtmlDivision htmlDiv =page.querySelector("#app");//获取第一个div
    System.out.println(htmlDiv.asXml());
    webClient.close();
    setJavaScriptEnabled(true)设置为true之后,运行的时候会出现一些警告信息。

    接着在android studio运行,发现HtmlUnit要求使用android 26(即8.0) ,这个还是用不了,我的手机才 android 4.4,测试都没法测试,还需要换。
  • 相关阅读:
    K8S集群组件
    K8S概念
    yaml格式
    Linux下升级openssl
    cpu的核心数及线程关系
    bzoj4941: [Ynoi2016]镜子里的昆虫
    bzoj4940: [Ynoi2016]这是我自己的发明
    bzoj4939: [Ynoi2016]掉进兔子洞
    bzoj4867: [Ynoi2017]舌尖上的由乃
    bzoj 4866: [Ynoi2017]由乃的商场之旅
  • 原文地址:https://www.cnblogs.com/yangms/p/9859042.html
Copyright © 2011-2022 走看看