【问题标题】:JSoup not reading content from URL with anchorJSoup 没有从带有锚点的 URL 读取内容
【发布时间】:2021-03-24 01:13:30
【问题描述】:

我正在使用 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?

【问题讨论】:

    标签: java jsoup


    【解决方案1】:

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

    【讨论】:

    • 你是怎么找到那个 json 文件的? :o
    • 打开浏览器的开发者工具(F12)看看流量...
    • 在 Chrome 的“网络”标签中,我确实看到了很多流量,但不是那个特定的呼叫
    • 你是对的。您必须先选择一天,然后才能在 XHR 选项卡下看到 json 文件。
    猜你喜欢
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多