利用Jsoup爬取网页内容

本文介绍了如何使用Jsoup库爬取网页内容,特别是从HTML中提取新闻标题、图片链接。示例展示了如何解析学校信息门户的新闻,通过Jsoup抓取每条新闻的标题、图片URL以及文章链接,为客户端提供数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jsoup的强大之处在这里就不多说,最近在写项目,需要爬取网页上的内容,自然想到的是利用Jsoup来处理,项目中是利用Jsoup爬取学校信息门户的新闻消息,然后放进客户端

网页的html代码如下

[html]  view plain   copy
  1. <div class="zw_content" ><p><img src="/attach/2016/09/02/123920.jpg" width="800" height="533"/></p><p style="LINE-HEIGHT: 150%; TEXT-INDENT: 32px"><span style="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; FONT-SIZE: 16px">8</span><span style="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; FONT-SIZE: 16px">月30日,日照市常务副市长王斌一行人来我校进行调研。校长戚万学,副校长康淑敏、杨冰等热情接待了王斌一行。校区管理办公室、学生工作办公室等相关负责人参加了座谈。</span></p><p style="LINE-HEIGHT: 150%; TEXT-INDENT: 32px"><span style="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; FONT-SIZE: 16px">王斌表示,曲阜师范大学有深厚的文化与学术底蕴,形成了独具特色的办学传统与学科优势,为服务日照、校地合作积极创造条件,建立校地资源共享、共同合作的良性渠道,为日照市社会发展做出了重要贡献,为日照市文化经济发展提供了支持,实现了社会建设的人才保障。</span></p><p style="LINE-HEIGHT: 150%; TEXT-INDENT: 32px"><span style="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; FONT-SIZE: 16px">戚万学对日照市委市政府给予的支持和帮助表示了感谢,并表明我校将进一步提高办学层次、加强人才培养,大力促进校地、校企合作,为日照市输送更多的优秀人才,实现学校建设与社会发展的共赢。我们将本着资源共享、互惠共赢的原则,以项目(课题)为纽带、整合学科资源、发挥人才优势与日照市加强合作和交流,为新丝绸之路经济带建设与发展做出贡献。</span></p><p style="LINE-HEIGHT: 150%; TEXT-INDENT: 32px"><a name="_GoBack"></a><span style="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; FONT-SIZE: 16px">(</span><span style="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; FONT-SIZE: 16px">作者:李艳梅  来源:校区管理办公室  编辑:校区管理办公室  责编:孙琪)</span></p><p></p></div>  



项目中,需要爬取出新闻中的图片超链接,还有新闻文字内容,功能代码如下,、由于每个新闻中图片的超链接数目不一定一样,防止java向外抛异常,需要自己try-catch处理

[java]  view plain   copy
  1. private static void getItemContent() {  
  2.         // TODO Auto-generated method stub  
  3.         Document doc ;  
  4.           
  5.         try {  
  6.             doc = Jsoup.connect("http://www.qfnu.edu.cn/html/xxyw/2016/09/02/d6f4656a-7349-4632-8634-27d30daaf3ad.html").get();  
  7.               
  8.             Elements listClass = doc.getElementsByAttributeValue("class""zw_content");  
  9.             String url2;  
  10.             for (Element listItem : listClass){  
  11.                 String url1 = listItem.getElementsByTag("img").get(0).attr("src");  
  12.                 try{  
  13.                     url2= listItem.getElementsByTag("img").get(1).attr("src");  
  14.                 }catch(Exception e){  
  15.              &n
### 使用 Jsoup 进行静态网页数据爬取 Jsoup 是一款功能强大的 Java 库,主要用于解析 HTML 文档并提取所需的数据。然而需要注意的是,Jsoup 只能处理静态页面的内容,即服务器返回的原始 HTML 数据[^1]。如果目标网站通过 JavaScript 动态加载部分内容,则这些动态生成的部分无法被 Jsoup 获取。 以下是基于引用中的描述所提供的一个简单示例代码: ```java import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; public class WebScraper { public static void main(String[] args) { try { // 发起 HTTP 请求并获取文档对象 Document doc = Jsoup.connect("http://www.example.com/").get(); // 提取特定标签内容 (例如所有的 a 链接) Elements links = doc.select("a[href]"); for (org.jsoup.nodes.Element link : links) { System.out.println(link.attr("href")); // 输出链接地址 System.out.println(link.text()); // 输出链接文字 } } catch (Exception e) { e.printStackTrace(); } } } ``` 上述代码展示了如何利用 Jsoup 对指定 URL 的静态内容发起请求,并从中提取 `<a>` 标签的相关属性和文本信息[^2]。 对于需要存储爬取结果的情况,可以通过引入 MySQL 和 MyBatis 等工具来完成后续操作[^3]。不过这超出了当前问题的核心范围,在此不做深入展开。 #### 关于动态网页的局限性说明 由于 Jsoup 并不具备执行 JavaScript 脚本的能力,因此它不适合用来抓取由前端框架(如 React、Vue 或 Angular)渲染后的动态内容。针对这种情况,建议考虑 Selenium 或 Puppeteer 等支持浏览器自动化运行环境的技术方案作为替代选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值