提问人:Hosein Haqiqian 提问时间:5/13/2019 最后编辑:Hosein Haqiqian 更新时间:6/7/2021 访问量:155
为什么 img 标签在使用 jsoup 解析后没有 src 值?
Why img tag has no src value after parsing with jsoup?
问:
我想从html img标签中获取src值。 通过 chrome 和 inspect 元素内部我可以看到 src 的值,但是当我使用 jsoup 库解析它时,src 没有值,这是我的代码:
document = Jsoup.connect("http://estelam.rahvar120.ir/index.jsp?
pageid=2371666&p=1").userAgent(USERAGENT).method(Connection.Method.GET)
.execute().parse();
Element element = document.select("img[id=capimg]").first(); //img
tag element
String absoluteUrl = element.absUrl("src"); // absoluteUrl = ""
String srcValue = element.attr("src"); // srcValue = ""
该网站无法从其他国家/地区访问,但我想从 html 解析的地方是:
<img id="capimg" alt="Enter Captcha :"
src="" width="200" height="60">
问题是jsoup在javascript设置src值之前获取html内容,我该怎么办?
答:
1赞
Zendy
5/15/2019
#1
欢迎来到 SO!
您面临的问题无法用 Jsoup 解决,因为 Jsoup 是一个 HTML 解析器,而不是浏览器。由于它不是浏览器,因此 javascript 渲染的任何内容都不会使用 Jsoup 渲染。
您需要的是另一个模拟 Web 浏览器的工具,例如 Selenium
有多种方法可以做到这一点。
- 使用 Selenium 处理页面检索和抓取。
- 使用 Selenium 获取动态页面,并使用 JSoup 解析和抓取内容。
我个人推荐第二种方法,因为我更习惯使用 Jsoup 进行刮擦。
评论
0赞
DisappointedByUnaccountableMod
6/7/2021
仅供参考,它是刮擦(刮擦,刮擦,刮擦)而不是报废。 “报废”的意思是像垃圾一样扔掉:-(
评论
element.attr("src");