Jsoup,http错误416,正在解析HTML
我不太了解jsoup或HTML解析。我正试图从whitepages.com获取信息Jsoup,http错误416,正在解析HTML,html,parsing,jsoup,Html,Parsing,Jsoup,我不太了解jsoup或HTML解析。我正试图从whitepages.com获取信息 try { Document doc = Jsoup.connect("http://www.whitepages.com/phone/1-###-###-####").get(); numberinfo = doc.select(".phone-list-data"); } } catch (IOException e) { // TODO
try {
Document doc = Jsoup.connect("http://www.whitepages.com/phone/1-###-###-####").get();
numberinfo = doc.select(".phone-list-data");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我正在获取org.jsoup.HttpStatusException:HTTP错误获取URL。
状态为416
我做了一些研究,它显示了一些关于范围的信息,它是否与特定电话号码末尾的输入有关
有没有办法让jsoup解析信息像这样 好的,所以当您请求比可用数据更多的数据时会发生错误,这种请求在语法上是有效的,但不可满足。例如,如果您要请求一个1K字节的文件,并且服务器上的实际文件小于请求的大小,服务器将发出416错误,如果您请求的字节小于服务器内容的实际大小,则您将收到http状态206(部分内容)的响应 为什么会发生在你的案例中? 这可能是我的猜测,但我不确定,
Jsoup
正在向您的请求添加范围标头,请参阅Jsoup中的Jsoup.connect(url).maxBodySize()
,它设置了要读取的最大字节数,并默认为1MB。在您的情况下,即使将其更改为200字节
,也会发生相同的错误
解决方案:在Jsoup.connect(url)
方法之后添加ignoreHttpErrors(true)
以忽略此类错误,例如:
try {
Document doc = Jsoup.connect("http://www.whitepages.com/phone/1-###-###-####").ignoreHttpErrors(true).get();
Elements elements = doc.select(".phone-list-data");
System.out.println(doc.html());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
好的,所以当您请求比可用数据更多的数据时,Http 416会发生错误,这样的请求在语法上是有效的,但不可满足。例如,如果您要请求一个1K字节的文件,并且服务器上的实际文件小于请求的大小,服务器将发出416错误,如果您请求的字节小于服务器内容的实际大小,则您将收到http状态206(部分内容)的响应 为什么会发生在你的案例中? 这可能是我的猜测,但我不确定,
Jsoup
正在向您的请求添加范围标头,请参阅Jsoup中的Jsoup.connect(url).maxBodySize()
,它设置了要读取的最大字节数,并默认为1MB。在您的情况下,即使将其更改为200字节
,也会发生相同的错误
解决方案:在Jsoup.connect(url)
方法之后添加ignoreHttpErrors(true)
以忽略此类错误,例如:
try {
Document doc = Jsoup.connect("http://www.whitepages.com/phone/1-###-###-####").ignoreHttpErrors(true).get();
Elements elements = doc.select(".phone-list-data");
System.out.println(doc.html());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
你能给出一个示例url吗?你可以将##############更改为任何电话号码,480-307-7421,它很可能返回亚利桑那州的移动电话号码。你能给出一个示例url吗?你可以将####################更改为任何电话号码,480-307-7421很可能会返回亚利桑那州的一个tmobile电话号码。我想我得到了某种拒绝返回的访问权限。我正在获取HTML页面信息,但我无法看到任何特定的内容,比如直接在页面上查看源代码。我知道这是可以做到的,因为浏览器中的“Try jsoup online”非常适合它。我想我得到了某种访问拒绝返回。我正在获取HTML页面信息,但我无法看到任何特定的内容,比如直接在页面上查看源代码。我知道这是可以做到的,因为浏览器中的“TryJSoupOnline”非常适合它。