我正在写一个小爬虫。下载网页源html的最佳方法是什么?我目前正在使用下面的一小段代码,但有时候结果只是页面源的一半!我不知道是什么问题。有些人建议我应该使用Jsoup但是如果它太长,使用Jsoup中的.get.html()函数也会返回页面源的一半。由于我正在编写一个爬虫,因此该方法支持unicode(UTF-8)非常重要,效率也非常重要。我想知道最好的现代方式,所以我问你们,因为我是Java的新手。感谢。
代码:
public static String downloadPage(String url)
{
try
{
URL pageURL = new URL(url);
StringBuilder text = new StringBuilder();
Scanner scanner = new Scanner(pageURL.openStream(), "utf-8");
try {
while (scanner.hasNextLine()){
text.append(scanner.nextLine() + NL);
}
}
finally{
scanner.close();
}
return text.toString();
}
catch(Exception ex)
{
return null;
}
}
答案 0 :(得分:5)
我使用commons-io String html = IOUtils.toString(url.openStream(), "utf-8");
答案 1 :(得分:2)
就个人而言,我对Apache HTTP库http://hc.apache.org/httpcomponents-client-ga/非常满意。如果你正在编写一个网络爬虫,我也是,你可能会非常感谢它对cookie和客户端共享等内容的控制。