JSoup .followRedirects(true)不起作用

时间:2016-02-24 11:28:52

标签: jsoup

不遵循(或者至少没有获得整个页面内容),如何解决?

我认为没有客户端重定向......

    <meta http-equiv ...

stackoverflow http-equiv

在我从中得到的内容:

       Document doc1 = Jsoup.connect("http://e-uprava.gov.si/e-uprava/oglasnadeska.htm")
       .header("Accept-Encoding", "gzip, deflate")
       .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
       .ignoreContentType(true)               
       .ignoreHttpErrors(true)
       .followRedirects(true)
       .timeout(600000)
       .maxBodySize(0)/*unlimited body size*/
       .get();

String url = "http://e-uprava.gov.si/e-uprava/oglasnadeska.htm";
final Connection connection = Jsoup.connect(url).timeout(10000);
final Response response = connection.execute();
final int status = response.statusCode();
System.out.println(status);

status = 200

那是

  

div class =&#34; subpage-container ...

没有填充我在浏览器中看到的东西。 Checking for meta and javascript redirects - &gt;没有可用的结果

1 个答案:

答案 0 :(得分:2)

<强>解释

重定向不是问题,jsoup正确加载页面。

问题是页面正在使用JavaScript来动态加载您要查找的内容。虽然jsoup只是HTML解析器,但您不能指望它执行JavaScript并获取数据。

<强>溶液

如果您在浏览器中打开此页面并查看此页面发出的所有请求developer tools,您肯定会找到这个:

  

http://e-uprava.gov.si/si/e-uprava/oglasnadeska/content/singleton.html?&type=-&rijs=-1&offset=155&sentinel_type=ok&sentinel_status=ok&is_ajax=1

其中包含您想要的所有数据。

此解决方案并不理想,对页面的任何更改都可能会破坏它。使用SeleniumHtmlUnit

等浏览器模拟器会更好