如何以编程方式下载 Java 中的网页
2022-08-31 08:52:12
我希望能够获取网页的html并将其保存到a,以便我可以对其进行一些处理。另外,我如何处理各种类型的压缩。String
我该如何使用Java来做到这一点?
我希望能够获取网页的html并将其保存到a,以便我可以对其进行一些处理。另外,我如何处理各种类型的压缩。String
我该如何使用Java来做到这一点?
我会使用像Jsoup这样不错的HTML解析器。然后,它就像这样简单:
String html = Jsoup.connect("http://stackoverflow.com").get().html();
它完全透明地处理GZIP和分块响应以及字符编码。它还提供了更多的优势,例如HTML遍历和CSS选择器的操作,就像jQuery可以做到的那样。您只需要将其抓取为 ,而不是作为 .Document
String
Document document = Jsoup.connect("http://google.com").get();
你真的不想在HTML上运行基本的String方法甚至正则表达式来处理它。
下面是一些使用 Java 的 URL 类的测试代码。不过,我建议在处理异常或将它们传递到调用堆栈方面做得比我在这里做得更好。
public static void main(String[] args) {
URL url;
InputStream is = null;
BufferedReader br;
String line;
try {
url = new URL("http://stackoverflow.com/");
is = url.openStream(); // throws an IOException
br = new BufferedReader(new InputStreamReader(is));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (MalformedURLException mue) {
mue.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
try {
if (is != null) is.close();
} catch (IOException ioe) {
// nothing to see here
}
}
}