首页 > 解决方案 > JSoup 没有从带有锚点的 URL 读取内容

问题描述

我正在使用 JSoup 从以下页面读取内容:

https://www.astrology.com/horoscope/daily/aries.html#Monday

这是我正在使用的代码:

String test1 = "https://www.astrology.com/horoscope/daily/aries.html#Monday";
String test2 = "https://www.astrology.com/horoscope/daily/aries.html#Tuesday";

Document document = Jsoup.connect(test1).get();
Element content = document.getElementById("content");
Element p = content.child(0);
String myTest = p.text();

在 URL 中,我可以使用锚点(参见test1test2变量)度过一天,但在这两种情况下,它都会返回相同的内容,看起来 JSoup 只是忽略了锚点,只使用了基本 URL: https://www.astrology.com/horoscope/daily/aries.html。JSoup 有没有办法读取带有锚点的 URL?

标签: javajsoup

解决方案


Jsoup 忽略了锚点,因为相关信息是用 JavaScript 渲染的,Jsoup 无法处理它。如果您使用浏览器的开发工具检查页面,您会发现每日信息位于 json 文件中,例如https://www.astrology.com/horoscope/daily/all/aries/2021-03-23/,因此您可以轻松更改日期/签名并获得您喜欢的任何内容。


推荐阅读