无法使用Jsoup连接到以.tv结尾的网址

时间:2016-12-12 17:28:43

标签: java dom jsoup html-parsing

我尝试解析以.tv.mobi扩展名结尾的网页,但每次尝试时我都会遇到同样的错误。 Jsoup可以轻松解析以.com.org.in等结尾但不是.tv.mobi的网站。

import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.jsoup.nodes.Element;


public class sample {

  public static void main(String[] args) throws IOException{

    Document doc =Jsoup.connect("http://www.xmovies8.tv").get();
    String title = doc.title();
    System.out.println(title);

  }

}

堆栈追踪:

Exception in thread "main" org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403, URL=http://www.xmovies8.tv
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:598)
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:548)
    at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:235)
    at org.jsoup.helper.HttpConnection.get(HttpConnection.java:224)
    at eric.sample.main(sample.java:30)
    /home/azeem/.cache/netbeans/8.1/executor-snippets/run.xml:53: Java returned: 1
    BUILD FAILED (total time: 3 seconds)

而且它也无法解析:

Jsoup中是否有任何解决方案,以便我可以连接到以.mobi.tv.xyz等结尾的不同网站?

1 个答案:

答案 0 :(得分:0)

您的问题与您试图搜索的域名的TLD无关,事实上,它与名称完全无关,甚至与Jsoup无关。

如果您阅读了堆栈跟踪,您将看到收到的响应代码为:

HTTP 403 Forbidden,根据HTTP Specification,表示您的请求被网络服务器看到,并故意拒绝。

现在,这可能有很多原因,这些原因都取决于你想要抓住的网站。

可能是该网站看到你正在试图刮,并且他们明确地避开了被刮掉的方式

也可能是该页面需要您没有的权限,或者您需要登录。

我还注意到特定域名使用CloudFlare,因此CloudFlare可能会在您的请求到达网站之前拦截您的请求。

我会确保它不会违反网站的政策,如果不是,请尝试将刮刀的用户代理标题更改为普通浏览器用户代理而不是java,看看它是否有效。