`
lzy19881227
  • 浏览: 13510 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Jsoup(parse html) + ScriptEngine(執行js)

    博客分类:
  • Java
 
阅读更多

使用Jsoup(parse html) + ScriptEngine(執行js)

 

import java.net.URL;

 

import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;

 

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;

 

import net.sf.json.JSONArray;

import net.sf.json.JSONObject;

 

public class BbTest3 {

 

         public static void main(String args[]) throws Exception {

                   // 使用jsonparse html

                   String url = "123456";

                   Document doc = Jsoup.parse(new URL(url), 3000);

 

                   // 取得所有的script tag

                   Elements eles = doc.getElementsByTag("script");

                   for (Element ele : eles) {

 

                            // 檢查是否有detailInfoObject字串

                            String script = ele.toString();

                            if (script.indexOf("detailInfoObject") > -1) {

 

                                     // 只取得script的內容

                                     script = ele.childNode(0).toString();

 

                                     // 使用ScriptEngineparse

                                     ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");

                                     engine.eval(script);

 

                                     // 取得你要的變數

                                     Object obj = engine.get("detailInfoObject");

                                     System.out.println("detailInfoObject = " + obj);

 

                                     // obj轉成Json物件

                                     JSONObject json = JSONObject.fromObject(obj);

                                     System.out.println("json = " + json);

 

                                     // 取得欄位

                                     System.out.println("destInfo = " + json.get("destInfo"));

 

                                     // 取得欄位(array type)

                                     JSONArray scans = json.getJSONArray("scans");

                                     for (int i = 0, max = scans.size(); i < max; i++) {

                                               JSONObject child = (JSONObject) scans.get(i);

                                               System.out.println("scans[" + i + "] = " + child);

                                     }

 

                            }

                   }

         }

}

分享到:
评论

相关推荐

    Jsoup解析html+xml

    2. **解析HTML文档**:下载的HTML内容可以通过`parse()`方法解析成一个`Document`对象,这是Jsoup处理HTML的基础。 ```java String html = "&lt;html&gt;&lt;head&gt;&lt;title&gt;Test&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Hello World&lt;/p&gt;&lt;/...

    jsoup+httpclient+jar包

    5. **使用JSoup解析HTML**:将响应体的字符串传递给JSoup的parse方法,得到Document对象。 6. **数据提取**:使用JSoup的select方法通过CSS选择器定位元素,或者使用getElementById、getElementsByTag等方法提取...

    用eclipse在Maven基础上使用Jsoup+MYSQL+MyBatis+jsp实现网络小说抓取以及前端展示

    5. 使用Jsoup连接目标网站,解析HTML并提取小说信息,通过MyBatis接口存入数据库。 6. 设计JSP页面,通过Servlet或Controller接收请求,调用MyBatis查询数据,动态填充页面内容。 7. 部署应用到服务器,如Tomcat,...

    Java爬虫【一篇文章精通系列-案例开发-巨细】HttpClient5 + jsoup + WebMagic + spider

    本篇文章以"一篇文章精通系列-案例开发-巨细"为主题,详细介绍了如何使用HttpClient5、jsoup、WebMagic以及spider-flow这四个关键工具来构建一个强大的Java爬虫系统。以下是对这些工具和技术的深入解析。 首先,...

    使用Jsoup解析html网页

    1. **Jsoup连接(Connection)**:使用Jsoup的第一步是建立到目标网页的连接。这可以通过`Jsoup.connect()`方法完成,它允许设置请求头、HTTP方法(GET或POST)以及数据提交等。 2. **HTML解析**:一旦建立了连接,...

    android使用jsoup 解析html文件

    使用`Jsoup.parse()`方法解析HTML字符串,得到一个`Document`对象,表示整个HTML文档的结构: ```java Document document = Jsoup.parse(htmlContent); ``` 3. **选择和操作HTML元素** `jsoup`提供了丰富的...

    动态爬虫jsoup+jdic实现

    Jsoup是一个用于处理实际世界HTML的Java库,而Jdic则是一个Java的DOM解析器,能够执行JavaScript,从而获取页面上的动态内容。 首先,我们需要了解Jsoup的基本用法。Jsoup提供了丰富的API来解析HTML文档,提取结构...

    使用Jsoup,抓取整个网站(包括图片、js、css)

    在这个项目中,我们使用Jsoup配合Java,实现了抓取整个网站的功能,包括其中的图片、CSS样式表和JavaScript文件。通过这样的工具,我们可以对网页进行离线浏览或者备份,甚至进行数据分析。 首先,我们要理解Jsoup...

    jsoup+httpclient

    Document doc = Jsoup.parse(htmlContent); // 使用CSS选择器找到视频列表 Elements videoElements = doc.select("div.video-list li"); for (Element videoElement : videoElements) { String title = ...

    Jsoup操作解析Html文件

    例如,可以先发送一个GET请求获取HTML,然后用Jsoup解析其中的JavaScript动态加载的数据源,再发送额外的请求来获取这些资源。 此外,Jsoup的兼容性极佳,它能很好地处理各种不规范的HTML,尽可能地恢复其结构,这...

    htmlunit2.8 + jsoup1.7网站数据抓取

    首先,HtmlUnit加载整个网页,执行JavaScript,然后Jsoup解析HtmlUnit得到的HTML内容,提取我们需要的数据。这样做的好处在于: 1. **完整内容获取**:HtmlUnit处理JavaScript,确保我们获取到所有动态加载的内容。...

    Android使用Jsoup技术解析HTML

    **Android使用Jsoup技术解析HTML** Jsoup是一个Java库,专为处理真实世界的HTML而设计。在Android开发中,我们经常需要从网页抓取数据,比如解析新闻标题、获取图片链接或者提取用户评论等。Jsoup提供了一种简单、...

    使用Jsoup库解析HTML、XML或URL链接中的DOM节点

    Document doc = Jsoup.parse(xmlString, "", Parser.xmlParser()); ``` 在压缩包文件"JsoupDemo"和"Jsoup"中,可能包含了使用Jsoup进行DOM解析的示例代码。这些代码通常会展示如何连接到URL,选择元素,提取数据...

    jsoup+httpclient j简单爬虫

    JSoup 提供了方便的 API 用于解析 HTML 文档,而 HttpClient 则是 Apache 开源组织提供的一个用于执行 HTTP 请求的强大工具。本文将深入探讨如何结合这两者构建一个简单的 Java 爬虫。 首先,我们需要理解 **JSoup*...

    基于springboot+mybatisplus+jsoup+mysql开发web小说网站

    本项目使用了Java技术栈,具体包括SpringBoot、MyBatisPlus、Jsoup和MySQL数据库,这四个组件构成了一个高效且功能强大的后端系统。 1. **SpringBoot** SpringBoot是Spring框架的一个扩展,它简化了Spring应用的...

    用Jsoup解析html的所有jar包

    在实际项目中,可能还需要处理JavaScript动态生成的内容,但Jsoup本身并不支持执行JavaScript。如果需要这方面的功能,可能需要结合其他工具,如Selenium WebDriver。 为了使用Jsoup,你需要将对应的jar包添加到...

    Java爬虫Jsoup+httpclient获取动态生成的数据

    本文主要讲述如何利用Java编程语言中的Jsoup库和HttpClient工具包来获取和解析动态生成的数据,特别是那些通过JavaScript动态加载的数据。 ### Java爬虫基础 Java爬虫是指使用Java语言编写的一类程序,这些程序...

    使用Jsoup对Html文件解析

    在本文中,我们将深入探讨如何使用Jsoup解析HTML文件,并进一步将解析的数据导出到Excel表格。 首先,我们需要理解Jsoup的基本用法。Jsoup的核心在于`Connection`和`Document`对象。`Connection`用于建立与网页的...

    httpClient+jsoup 抓取网页数据

    实际操作时,可能还需要考虑登录、分页、动态加载等问题,这些可以通过HttpClient设置cookie和处理重定向,或者使用Jsoup的Jsoup.connect模拟JavaScript执行来解决。 总之,HttpClient和Jsoup是Java开发者进行网页...

    Jsoup1.11.1+HTTPClient4.5.3的最新全部jar包

    例如,你可以先使用Jsoup解析网页内容,提取需要的数据,然后用HTTPClient发送POST请求到服务器,将这些数据上传。 在使用这些库时,需要将对应的jar包添加到项目的类路径中。在这个压缩包中,"jsoup-1.11.1.jar"是...

Global site tag (gtag.js) - Google Analytics