【问题标题】:Why jsoup-java return null html page via connection?为什么 jsoup-java 通过连接返回 null html 页面?
【发布时间】:2018-07-12 09:32:31
【问题描述】:

我的代码:

        Document document = Jsoup.connect(pageUrl)
            .userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36")
            .get();

        System.out.println("parse document: \n"+document.toString());

在“https://www.mmbang.com/bang/509/907187”中获取html页面, 但回应是:

<html>
 <head>
  <script>
    (function(window){
        function createCookie(name,value,days, domain) {
            if(name == 'http_referrer'){
                var exp = new Date();
                exp.setTime(exp.getTime() + 10000);
                document.cookie = name+"="+value+";expires="+exp.toGMTString();
                return;
            }
            if (days) {
                var date = new Date();
                date.setTime(date.getTime()+(days*24*60*60*1000));
                var expires = "; expires="+date.toGMTString()+"; path=/; domain="+domain;
            }
            else var expires = "";
            document.cookie = name+"="+value+expires;
        }
        createCookie("http_referrer", document.referrer, 1, '.mmbang.com');
        createCookie("__9XRwuHhHTjQiC8wXCnCj7wsEBU9x", 'wy', 9000000, '.mmbang.com');
        location.reload();
    })(window);
    </script>
 </head>
 <body></body>
</html>

什么意思?我该怎么做才能解决?

【问题讨论】:

  • 您使用 toString() 而不是 body() 的任何原因?

标签: java html web-crawler jsoup


【解决方案1】:

此页面在请求中需要引荐来源标头。

尝试使用:

    Document doc = Jsoup.connect(url) //
            .userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36") //
            .referrer("www.mmbang.com")
            .get();

【讨论】:

  • 非常感谢!有用!我想知道你是从哪里找到这条线索的?
  • 不幸的是,我唯一的答案就是经验。您提供的输出中提到了“http_referrer”。通常,当我在使用 jsoup 时没有得到想要的响应时,我会先在浏览器中禁用 javascript,然后比较浏览器请求中的标头。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-13
  • 1970-01-01
  • 2015-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多