java - 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 中,我可以使用锚点(参见test1
和test2
变量)度过一天,但在这两种情况下,它都会返回相同的内容,看起来 JSoup 只是忽略了锚点,只使用了基本 URL: https://www.astrology.com/horoscope/daily/aries.html
。JSoup 有没有办法读取带有锚点的 URL?
解决方案
Jsoup 忽略了锚点,因为相关信息是用 JavaScript 渲染的,Jsoup 无法处理它。如果您使用浏览器的开发工具检查页面,您会发现每日信息位于 json 文件中,例如https://www.astrology.com/horoscope/daily/all/aries/2021-03-23/,因此您可以轻松更改日期/签名并获得您喜欢的任何内容。
推荐阅读
- typescript - 打字稿不从外部函数推断类型
- java - OHttpClient 获取具有有效 I.CA 证书的请求
- ios - 在 UISearchBar 中过滤撇号(特殊字符) - Swift,Xcode
- dictionary - Ansible - 如何从字典中检索值,在额外的变量中传递列表
- r - 在 R 中过滤具有重复行的数据集
- python - 无法导入模块 pyautogui
- asp.net - 在性能监视器中连接网站其 w3wp#X 进程
- java - 使用 dfs 确定给定树是否是子树
- docker - 如何防止来自 docker exec 的无密码登录?
- opencv - 在 OpenCV 中切换 640x480 和 640x360 分辨率