Jsoup解析HTML时,明明获取到html页面信息却无法解析到数据(已解决)

1.解决方式:

修改获取html页面时候的 user-agent 参数

删除掉里面的 Chrome/25.0.1364.160 Safari/537.22这两个即可

2.原因:

起因是今天有点不太想学别的了,就打算写写爬虫啥的,放松放松,然后就遇到了这个问题:

我明明获取到html的页面了,也获取到html所有的信息了,但是jsoup就是解析不到数据

测试代码长这样:

    @Test
    public void test() throws IOException {
        String url = "https://tieba.baidu.com/f?kw=%E5%8F%A4%E9%A3%8E&ie=utf-8&tab=good&cid=3";
        String html = HttpClientUtil.execute(url, true);
        System.out.println(html);
        System.out.println("============");
        Document parse = Jsoup.parse(html, url);
        Elements select = parse.select("a.j_th_tit");
        for (Element element : select) {
            System.out.println(element.attr("abs:href"));
        }
    }

结果是这样的:
在这里插入图片描述

我这次使用的是HttpClient去获取html页面信息,然后使用jsoup去解析。看到能够获取到正确的html页面也就没有往那边去想,而是开始检查我的jsoup代码。

结果问题就出在Httpclient的代码中

先看之前的配置信息:

#请求头配置文件
User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; zh-CN; rv:1.9.2.15) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36

Accept-Encoding=gzip

Accept=text/html

Accept-Language=zh-CN,zh

之前我傻乎乎的就和python爬虫一样直接把谷歌浏览器的用户代理直接写上去了

在这里插入图片描述
然而等我看到Jsoup官方给出的例子,我才后知后觉
在这里插入图片描述
在我反复的实验之下发现:

只要带上这两个参数获取html字符串,就解析不到,不带就能够解析到

 Chrome/25.0.1364.160 Safari/537.22

然后我对比了这两种获取之后html页面,结果发现,根本没有区别,也不知道是不是我眼睛不太好。

最让我无法理解的就是这个了,看起来没有任何区别,HTML中的标签信息啥的都是一摸一样的,不一样的可能就是头文件那些细小的差距了,结果一个可以解析一个解析不了,关键是你是字符串呀,吐了,就这样吧。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值