Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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 imdb 403上的Jsoup错误_Java_Html_Jsoup - Fatal编程技术网

Java imdb 403上的Jsoup错误

Java imdb 403上的Jsoup错误,java,html,jsoup,Java,Html,Jsoup,我需要解析imdb页面以便显示结果。我正在为此使用Jsoup。下面是我为此编写的代码。当我运行代码时,我看到一个403错误。我重新验证了url,url似乎是正确的 import java.io.IOException; import java.net.URLEncoder; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; public class ParseI

我需要解析imdb页面以便显示结果。我正在为此使用Jsoup。下面是我为此编写的代码。当我运行代码时,我看到一个403错误。我重新验证了url,url似乎是正确的

import java.io.IOException;
import java.net.URLEncoder;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class ParseIMDB {

    public static void parse() throws IOException{
        Document doc = Jsoup.connect("http://imdb.com/search/title?count=100&genres=action&languages=en&release_date=2010,2016&title_type=feature").get();
        Elements newsHeadlines = doc.select("#main > table.results tbody");
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {
        parse();
        } catch (Exception e){
            System.out.println("Exception found!");
            e.printStackTrace();
        }
    }
}
我尝试使用URLEncode.encode对url进行编码,但也没有任何帮助

上述代码的堆栈跟踪如下所示:

发现异常!org.jsoup.HttpStatusException:获取HTTP错误 网址。状态=403,URL=at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:537) 在 org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:534) 在 org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:493) 位于org.jsoup.helper.HttpConnection.execute(HttpConnection.java:205) 位于org.jsoup.helper.HttpConnection.get(HttpConnection.java:194) ParseIMDB.parse(ParseIMDB.java:13)位于 main(ParseIMDB.java:20)


HTTP403
表示禁止。很可能imdb正在阻止编程请求。

HTTP403
表示禁止。最有可能的是imdb正在阻止编程请求。

我相信如果在请求中添加
用户代理
头,它会起作用。您可以这样做:

 Document doc = Jsoup.connect("http://imdb.com/search/title?count=100&genres=action&languages=en&release_date=2010,2016&title_type=feature")
                .userAgent("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36")
                .get();

这个解决方案已经过测试并运行,返回了一个电影列表。

我相信如果您在请求中添加一个
用户代理
头,它会起作用。您可以这样做:

 Document doc = Jsoup.connect("http://imdb.com/search/title?count=100&genres=action&languages=en&release_date=2010,2016&title_type=feature")
                .userAgent("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36")
                .get();

这个解决方案已经过测试并运行,返回了一个电影列表。

当我使用curl尝试该URL时,实际上得到了一个301(永久移动)。添加
www
使curl至少返回页面。不确定是否有帮助。是否尝试在代码中添加
www
?我的浏览器会自动添加
www
,因此可能需要它。我尝试使用www,但似乎没有帮助。当我使用curl尝试该URL时,实际上得到了301(永久移动)。添加
www
使curl至少返回页面。不确定是否有帮助。是否尝试在代码中添加
www
?我的浏览器会自动添加
www
,因此可能需要它。我尝试使用www,但似乎没有帮助。