gj1550713314 2013-10-21 03:02 采纳率: 0%
浏览 1243

求 htmlunit + jsoup 获取网页信息实例

求 htmlunit + jsoup 获取网页信息实例 包括htnlunit获取js里的内容

  • 写回答

1条回答

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-27 11:28
    关注

    该回复引自免费微信小程序-皆我百晓生:


    下面是一个使用HtmlUnit和Jsoup获取网页信息的示例:

    import com.gargoylesoftware.htmlunit.WebClient;
    import com.gargoylesoftware.htmlunit.html.HtmlPage;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    
    public class HtmlUnitJsoupExample {
        public static void main(String[] args) {
            try (WebClient webClient = new WebClient()) {
                // 启用JavaScript
                webClient.getOptions().setJavaScriptEnabled(true);
    
                // 获取网页内容
                HtmlPage page = webClient.getPage("http://example.com");
    
                // 将HtmlPage转换为Jsoup的Document对象
                Document doc = Jsoup.parse(page.asXml());
    
                // 使用Jsoup提取网页信息
                Element titleElement = doc.selectFirst("title");
                String title = titleElement.text();
                System.out.println("Title: " + title);
    
                Elements links = doc.select("a[href]");
                for (Element link : links) {
                    String href = link.attr("href");
                    String text = link.text();
                    System.out.println("Link: " + text + " (" + href + ")");
                }
    
                // 使用HtmlUnit执行JavaScript并获取结果
                String jsCode = "document.getElementById('elementId').innerHTML";
                Object result = page.executeJavaScript(jsCode).getJavaScriptResult();
                System.out.println("JavaScript Result: " + result);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    上述示例中,首先创建一个WebClient对象,并启用JavaScript。然后使用WebClient的getPage方法获取网页内容,并将HtmlPage对象转换为Jsoup的Document对象。接下来,可以使用Jsoup提供的方法来提取网页信息,例如获取标题和链接。最后,可以使用HtmlUnit的executeJavaScript方法执行JavaScript代码,并获取执行结果。

    请注意,你需要将HtmlUnit和Jsoup的相关库添加到项目的依赖中。

    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配