Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java—下载网页的最佳方式';s源html_Java_Download - Fatal编程技术网

Java—下载网页的最佳方式';s源html

Java—下载网页的最佳方式';s源html,java,download,Java,Download,我在写一个小爬虫。下载网页源html的最佳方式是什么?我目前正在使用下面的一小段代码,但有时结果只是页面源代码的一半!!!我不知道有什么问题。有人建议我应该使用Jsoup,但是如果Jsoup中的.get.html()函数太长,那么它也会返回页面源代码的一半。因为我正在编写一个爬虫程序,所以该方法支持unicode(UTF-8)非常重要,效率也非常重要。我想知道最好的现代方法,所以我问你们,因为我是Java新手。谢谢 代码: 我使用stringhtml=IOUtils.toString(url.o

我在写一个小爬虫。下载网页源html的最佳方式是什么?我目前正在使用下面的一小段代码,但有时结果只是页面源代码的一半!!!我不知道有什么问题。有人建议我应该使用Jsoup,但是如果Jsoup中的.get.html()函数太长,那么它也会返回页面源代码的一半。因为我正在编写一个爬虫程序,所以该方法支持unicode(UTF-8)非常重要,效率也非常重要。我想知道最好的现代方法,所以我问你们,因为我是Java新手。谢谢

代码:


我使用
stringhtml=IOUtils.toString(url.openStream(),“utf-8”)

我使用
字符串html=IOUtils.toString(url.openStream(),“utf-8”)

就个人而言,我对Apache HTTP库非常满意。如果你正在编写一个网络爬虫,我也是,你可能会非常感激它对cookies和客户端共享等东西的控制。

就个人而言,我对Apache HTTP库非常满意。如果你正在编写一个网络爬虫,我也是,你可能会非常感激它对cookies和客户端共享等内容的控制。

同样的问题。返回的字符串以
结尾,其长度为:439802@AlirezaNoori给我目标url
Utilities.downloadPage(“http://www.stackoverflow.com“”.length()
已返回:
191760
并且它的最后一个字符是:
确定。问题解决了!!!!Eclipse只显示了我字符串的一半,因此出现了这个问题!!我把这个输出写到一个文件中,一切都很好!我找不到任何方法可以在调试时检查完整的字符串!!令人惊叹的!认真地我花在Java上的时间越多,我就越喜欢.Net!!!同样的问题。返回的字符串以
结尾,其长度为:439802@AlirezaNoori给我目标url
Utilities.downloadPage(“http://www.stackoverflow.com“”.length()
已返回:
191760
并且它的最后一个字符是:
确定。问题解决了!!!!Eclipse只显示了我字符串的一半,因此出现了这个问题!!我把这个输出写到一个文件中,一切都很好!我找不到任何方法可以在调试时检查完整的字符串!!令人惊叹的!认真地我花在Java上的时间越多,我就越喜欢.Net!!!这不是一个丰富的爬虫,但我希望它做什么,它做的尽可能快和完美。目前我只想让它下载页面的源代码,我不需要太多的控制,但如果它不会给我的代码带来太多的复杂性,我会非常乐意使用它。你认为呢?既然我发现了问题所在,你认为我应该使用这个库还是应该使用我的旧代码?两种解决方案都可以,但第一种解决方案存在一些问题(例如imdb.com会返回403错误)。所以我选择了这个作为答案。它很容易使用。它不是一个丰富的爬虫程序,但我希望它能尽可能快和完美地完成它所做的事情。目前我只想让它下载页面的源代码,我不需要太多的控制,但如果它不会给我的代码带来太多的复杂性,我会非常乐意使用它。你认为呢?既然我发现了问题所在,你认为我应该使用这个库还是应该使用我的旧代码?两种解决方案都可以,但第一种解决方案存在一些问题(例如imdb.com会返回403错误)。所以我选择了这个作为答案。它很容易使用。
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;
        }
    }