【问题标题】:Scanning and displaying every word from a website source code Java扫描并显示网站源代码Java中的每个单词
【发布时间】:2014-02-19 16:48:41
【问题描述】:

我的任务是扫描网站源代码的内容,并使用分隔符从网站中提取所有超链接并显示它们。在网上环顾一番后,这是我目前所拥有的:

    import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Scanner;

    public class HyperlinkMain {
public static void main(String[] args) {
    try {
        Scanner in = new Scanner (System.in);
        String URL = in.next();

        URL website = new URL(URL);
        BufferedReader input = new BufferedReader(new InputStreamReader(website.openStream()));
        String inputLine; 

        while ((inputLine = input.readLine()) != null) {
            // Process each line.
            System.out.println(inputLine);
        }
        in.close(); 

    } catch (MalformedURLException me) {
        System.out.println(me); 

    } catch (IOException ioe) {
        System.out.println(ioe);
    }
}

}

所以我的程序可以从网站的源代码中提取每一行并显示它,但实际上我希望它从源代码中提取每个 WORD 而不是每一行。我真的不知道它是怎么做的,因为我在使用input.read();时总是出错

【问题讨论】:

  • 我看到两个不同的要求:“提取所有超链接”或“提取所有单词”。你打算完成这两个中的哪一个?
  • 我必须提取所有超链接,但要做到这一点,我认为我应该提取所有单词,然后搜索包含 " 等的单词
  • 我认为您不需要先提取所有单词。只需将整个文件转换为一个字符串,然后查找与您最喜欢的超链接正则表达式匹配的所有内容。
  • 如果我没有警告你html is not a regular language,我也会失职。

标签: java parsing delimiter


【解决方案1】:

有很多用于检索网页的源代码。查看Pattern 类,了解如何为超链接正则表达式文本。通过将超链接提取与网页下载分开进行,您可以将家庭作业视为两个独立的问题。

【讨论】:

  • 将任务分成两个问题是一个非常好的建议。
  • @Gus NP,除了调试之外,解决问题是编程的很多内容。一个小提示,regex 可以找到一个单词或模式的多个实例,这让生活变得更加轻松。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-12
  • 1970-01-01
  • 2012-03-27
  • 2013-04-09
  • 1970-01-01
  • 2018-09-09
相关资源
最近更新 更多