从Java中的网页中提取HTML

时间:2009-12-03 03:35:53

标签: java python html webpage pull

我想从Java(或Python或PHP网站)中提取整个HTML源代码文件,如果这些语言更容易显示的话。我希望只查看HTML并使用几种方法扫描它 - 不以任何方式编辑或操作它,我真的希望我不将它写入新文件,除非没有其他方法。是否有任何库类或方法可以执行此操作?如果没有,有什么方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:5)

在Java中:

URL url = new URL("http://stackoverflow.com");
URLConnection connection = new URLConnection(url);
InputStream stream = url.openConnection();
// ... read stream like any file stream

此代码适用于脚本编写和内部使用。我不反对将其用于生产用途。它不处理超时和连接失败。

我建议使用HttpClient library进行生产使用。它支持身份验证,重定向处理,线程化,池化等。

答案 1 :(得分:2)

在Python中:

import urllib
# Get a file-like object for the Python Web site's home page.
f = urllib.urlopen("http://www.python.org")
# Read from the object, storing the page's contents in 's'.
s = f.read()
f.close()

有关详细信息,请参阅Python and HTML Processing

答案 2 :(得分:0)

也许您还应该考虑从命令行运行标准实用程序(如wgetcurl)以将站点树提取到本地目录树中。然后使用本地副本进行扫描(使用Java,Python等)。它应该更简单,而不是自己实现所有无聊的东西,如错误处理,参数解析等。

如果要获取站点中的所有页面,wget和curl不知道如何从HTML页面获取链接。另一种方法是使用open source web crawler