【问题标题】:Searching for keyworkd in webpage在网页上搜索关键字
【发布时间】:2016-12-12 22:14:02
【问题描述】:

我已经编写了一些代码来搜索某些网页中的特定单词。 但是,我有一些问题,它找到了所有关键字,除了网页的 javascript 部分。 我不知道 javasrcipt,只有 java :| 有人可以帮助我吗? 谢谢。

这是我的代码 -

String searchWord = "WORD";
    String url = "SOME URL";

    Connection connection = Jsoup.connect(url).userAgent(USER_AGENT);
    System.out.println("Searching for the word " + searchWord);
    Document htmlDocument = connection.get();

    if(htmlDocument.body().text() != null){
                if((htmlDocument.body().text()).toLowerCase().contains(searchWord.toLowerCase()))
                    System.out.println("yes");
                else
                    System.out.println("No");

                                            }

我正在使用 Jsoup jar。

【问题讨论】:

  • 这段代码代码似乎是Java,所以你缺乏JavaScript知识是无关紧要的。它似乎还检查了网页的<body> 元素。您的 Javascript 是否包含在正文中? (如果是这样,那将是相当不寻常的。如果不是,那就是你的问题。)
  • javascript部分在网页的元素中。你有什么想法吗?

标签: javascript java


【解决方案1】:

JSoup 不是用于解析 JavaScript,而是用于 HTML。

Rhino 是一个更好的选择,它提供了一个“javax.script”变量来解析 Javascript。

如果必须使用 JSoup,则需要手动解析 '' 节点,使用正则表达式并解析 HTML 而不是文本,有关使用 JSoup 手动解析 Javascript 的更多信息,请参阅此链接:

Parse JavaScript with jsoup

【讨论】:

    【解决方案2】:

    读取您的 js 文件并按如下方式处理它(Java SE 7):

        Path source = Paths.get("sourcecode.js");   
    
        Charset charset = Charset.forName("US-ASCII");
    
        try(BufferedReader reader = Files.newBufferedReader(source, charset)) {
            String line;
            while ((line=reader.readLine())!=null) {
                if((line).toLowerCase().contains(searchWord.toLowerCase()))
                    System.out.println("yes");
                else
                    System.out.println("No");
            }
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多