【使用JSOUP实现网络爬虫】从元素抽取属性,文本和HTML

来源:互联网 发布:电磁场与微波知乎 编辑:程序博客网 时间:2024/04/29 06:57

问题

在解析获得一个Document实例对象,并查找到一些元素之后,你希望取得在这些元素中的数据。

方法

  • 要取得一个属性的值,可以使用Node.attr(String key) 方法
  • 对于一个元素中的文本,可以使用Element.text()方法
  • 对于要取得元素或属性中的HTML内容,可以使用Element.html(), 或 Node.outerHtml()方法

示例:

[java] view plaincopyprint?
  1. String html = "<p>An <a href='http://example.com/'><b>example</b></a> link.</p>";  
  2. Document doc = Jsoup.parse(html);//解析HTML字符串返回一个Document实现  
  3. Element link = doc.select("a").first();//查找第一个a元素  
  4.   
  5. String text = doc.body().text(); // "An example link"//取得字符串中的文本  
  6. String linkHref = link.attr("href"); // "http://example.com/"//取得链接地址  
  7. String linkText = link.text(); // "example""//取得链接地址中的文本  
  8.   
  9. String linkOuterH = link.outerHtml();   
  10.     // "<a href="http://example.com"><b>example</b></a>"  
  11. String linkInnerH = link.html(); // "<b>example</b>"//取得链接内的html内容  

说明

上述方法是元素数据访问的核心办法。此外还其它一些方法可以使用:

  • Element.id()
  • Element.tagName()
  • Element.className() and Element.hasClass(String className)

这些访问器方法都有相应的setter方法来更改数据.

参见

  • ElementElements集合类的参考文档
  • URLs处理
  • 使用CSS选择器语法来查找元素

阅读更多JSOUP相关文章,请看专栏:《使用JSOUP实现网络爬虫

0 0
原创粉丝点击