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

时间:2019-05-12 18:05:14

标签: android jsoup html-parsing

我想从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 个答案:

答案 0 :(得分:0)

欢迎您!

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

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

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

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

我个人建议使用第二种方法,因为使用Jsoup进行报废比较舒服。