为什么img标签用jsoup解析后没有src值?

Why img tag has no src value after parsing with jsoup?

我想从 html img 标签获取 src 值。 通过 chrome 和检查元素内部我可以看到 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 内容,我该怎么办?

欢迎来到 SO!

您面临的问题无法通过 Jsoup 解决,因为 Jsoup 是 HTML 解析器而不是浏览器。由于它不是浏览器,因此 javascript 呈现的任何内容都不会用 Jsoup 呈现。

您需要的是另一个模拟网络浏览器的工具,例如Selenium

有多种方法可以做到这一点。

  1. 使用 Selenium 处理页面检索和 抓取
  2. 使用 Selenium 获取动态页面并使用 JSoup 解析和抓取 内容。

我个人推荐第二种方法,因为我更习惯使用 Jsoup 抓取