Java只读web url的一半
我试图从一个网页上阅读整个源代码,但我只收到一半或更少。 我的代码有问题吗 这是我写的代码:Java只读web url的一半,java,Java,我试图从一个网页上阅读整个源代码,但我只收到一半或更少。 我的代码有问题吗 这是我写的代码: public class ReadFromReuters { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here ReadFromReuters rfr = new ReadFromRe
public class ReadFromReuters {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
ReadFromReuters rfr = new ReadFromReuters();
try(BufferedReader br = new BufferedReader(new InputStreamReader(rfr.getConnection().getInputStream()))){
String str;
while((str = br.readLine()) != null){
System.out.println(str);
}
}catch(IOException ioe){}
}
public URLConnection getConnection() throws MalformedURLException, IOException{
URL reuters = new URL("http://www.quickflix.com.au/browse/play");
URLConnection conn = reuters.openConnection();
return conn;
}
public void splitBy(String str){
}
}
测试你的代码。似乎有效。我已经将您的代码和站点的源代码的输出与WinMerge进行了比较。结果:无差异。
注意:本网站使用分页!使用此代码只能获得第一页。我尝试了您的代码并更正了一些错误,它工作正常。试试这个修改过的代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class ReadFromReuters {
public static void main(String[] args) {
// TODO code application logic here
ReadFromReuters rfr = new ReadFromReuters();
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(rfr.getConnection().getInputStream()));
String str;
while((str = br.readLine()) != null){
System.out.println(str);
}
}catch(IOException ioe){}
}
public URLConnection getConnection() throws MalformedURLException,
IOException {
URL reuters = new URL("http://www.quickflix.com.au/browse/play");
URLConnection conn = reuters.openConnection();
return conn;
}
public void splitBy(String str) {
}
}
您如何确定只读取了一半?查看结果输出,发现返回的行太少,而不是全部信息。我不知道这是否有助于您的案例,但您不应该默默地接受
IOException
。它可能会告诉你一些重要的事情——这甚至可能是你问题的原因。至少,您应该记录或打印它(e.printStackTrace()
)。更好的是,您应该将它发送到调用堆栈上的某个可以使用它做一些有用的事情的人(以某种方式向用户报告错误等)。缺少哪些特定信息?你的结果会在页面中间停止吗?页面是否通过JavaScript加载部分内容?是否引发异常?答案可能是例外。对不起,我输入了另一个错误的url,没有例外,我仍然有同样的问题。你能帮我提供一个关于如何获取所有页面的建议吗?资源有限的BufferedReader与您编写的方式有什么区别。如果您更改链接,问题仍然存在。@coco:尝试使用Eclipse IDE进行上述编码。它很好用。代码中的错误是“您正在try-open大括号内编写BufferedReader”。Try块后面总是紧跟着“{”大括号并以“}”结尾,然后应该紧跟着Catch块。