java 如何获取网页的动态内容,并解析网页内容

Posted just coding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 如何获取网页的动态内容,并解析网页内容相关的知识,希望对你有一定的参考价值。

(笔记)

获取网页的动态内容参考

https://pastebin.com/raw/FePkm2kp

Maven:

<!--获取网页源码,包括动态内容-->
<dependency>
<groupId>htmlunit</groupId>
<artifactId>htmlunit</artifactId>
<version>1.14</version>
</dependency>

实现:
WebClient webClient = new WebClient();
//don‘t disable it if you want JS ENABLED;
webClient.setCssEnabled(false);
webClient.setAppletEnabled(false);
webClient.setjavascriptEnabled(false);
webClient.setTimeout(7000);
WebRequest request = new WebRequest(new URL("http://portal.hud.gov/portal/page/portal/HUD/"));
//request.setAdditionalHeader("Authorization", "Basic bG9hbnNkZXY6bG9AbnNkM3Y=");
Page page = webClient.getPage(request);
String contentType = page.getWebResponse().getContentType();
int statusCode = page.getWebResponse().getStatusCode();
String statusMessage = page.getWebResponse().getStatusMessage();
long loadTime = page.getWebResponse().getLoadTime();		
System.out.println(statusCode);
System.out.println(statusMessage);
System.out.println(contentType);
System.out.println(loadTime);
System.out.println(page.getWebResponse().getContentAsString());

https://stackoverflow.com/questions/42446990/parse-html-table-to-json-using-jsoup-in-java

maven:

<!--将html转换为Map-->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.10.3</version>
</dependency>

实现:
public String TableToJson(String source) throws JSONException {   
     Document doc = Jsoup.parse(source);
        JSONObject jsonParentObject = new JSONObject();
        //JSONArray list = new JSONArray();
        for (Element table : doc.select("table")) {
            for (Element row : table.select("tr")) {
                JSONObject jsonObject = new JSONObject();
                Elements tds = row.select("td");
                String Name = tds.get(0).text();
                String Group = tds.get(1).text();
                String Code = tds.get(2).text();
                String Lesson = tds.get(3).text();
                String Day1 = tds.get(4).text();
                String Day2 = tds.get(5).text();
                String Day3= tds.get(6).text();        
                jsonObject.put("Group", Group);
                jsonObject.put("Code", Code);
                jsonObject.put("Lesson", Lesson);
                jsonObject.put("Day1", Day1);
                jsonObject.put("Day2", Day2);
                jsonObject.put("Day3", Day3);
                jsonParentObject.put(Name,jsonObject);
             }
        }
    return jsonParentObject.toString();
}


















以上是关于java 如何获取网页的动态内容,并解析网页内容的主要内容,如果未能解决你的问题,请参考以下文章

JSoup——用Java解析html网页内容

用jsoup解析获取一段网页内容的问题

如何获取动态加载的网页内容

为啥浏览器可以保存网页中js动态内容,用java编写的爬虫却无法抓取

获取WebView加载的网页内容并进行动态修改

如何使用java写一个轻量的爬取动态内容 的爬虫