【发布时间】: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,我也会失职。