我正在尝试使用代理在 java 中拉取页面源。
我使用过 httpclient、httpunit 和 HttpURLConnection,当我在没有代理的情况下获取页面源时,所有这些都需要 5 秒,但我使用代理,然后它需要 12-15 秒来处理单个页面。
有什么方法可以提高速度或提供快速页面源的其他类。
最佳答案
您需要首先确定问题出在哪里:是您从中提取页面的服务器真的很慢,还是您使用的代理真的很慢(或两者兼而有之)? 如果您在命令行中使用 wget(或者甚至可能是 curl)之类的东西,它应该会显示有关页面下载时间的统计信息——通过代理和绕过代理。如果这些时间与您的代码显示的时间相同,那么您就没有什么可以优化的了。但是,如果您看到差异,则可以考虑使用其他方式在代码中提取页面。 作为一般经验法则:
- 如果要处理大量连接,请使用 Java NIO
- 如果您只处理到少量主机/服务器的大量传输,请使用普通的 Java IO
关于java - fater网页源提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5742886/