利用Jsoup爬取网页内容

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

网页的html代码如下

<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处理

private static void getItemContent() {
		// TODO Auto-generated method stub
		Document doc ;
		
		try {
			doc = Jsoup.connect("http://www.qfnu.edu.cn/html/xxyw/2016/09/02/d6f4656a-7349-4632-8634-27d30daaf3ad.html").get();
			
			Elements listClass = doc.getElementsByAttributeValue("class", "zw_content");
			String url2;
			for (Element listItem : listClass){
				String url1 = listItem.getElementsByTag("img").get(0).attr("src");
				try{
					url2= listItem.getElementsByTag("img").get(1).attr("src");
				}catch(Exception e){
					url2="1111";
				}
				
				String text = listItem.getElementsByTag("span").text();
				System.out.println(text);
				System.out.println(url1);
				System.out.println(url2);
						
			}
			
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

爬取到的内容如下

8 月30日,日照市常务副市长王斌一行人来我校进行调研。校长戚万学,副校长康淑敏、杨冰等热情接待了王斌一行。校区管理办公室、学生工作办公室等相关负责人参加了座谈。 王斌表示,曲阜师范大学有深厚的文化与学术底蕴,形成了独具特色的办学传统与学科优势,为服务日照、校地合作积极创造条件,建立校地资源共享、共同合作的良性渠道,为日照市社会发展做出了重要贡献,为日照市文化经济发展提供了支持,实现了社会建设的人才保障。 戚万学对日照市委市政府给予的支持和帮助表示了感谢,并表明我校将进一步提高办学层次、加强人才培养,大力促进校地、校企合作,为日照市输送更多的优秀人才,实现学校建设与社会发展的共赢。我们将本着资源共享、互惠共赢的原则,以项目(课题)为纽带、整合学科资源、发挥人才优势与日照市加强合作和交流,为新丝绸之路经济带建设与发展做出贡献。 ( 作者:李艳梅? 来源:校区管理办公室? 编辑:校区管理办公室? 责编:孙琪)
/attach/2016/09/02/123920.jpg     //第一个图片的超链接
1111            //如果没有第二个图片,侧打印自定义的URl



另一段需要爬取html代码


  <div cmsid="20085636"  class="news-1-list clearF" id="news-1-list">
            <ul class="news-1-lists" id="news-1-lists">
                            <li  class="news-on" > <img src="/attach/2016/09/02/123921.jpg" title="我校在山东高校思政课讲课大赛中斩获佳绩" alt="我校在山东高校思政课讲课大赛中斩获佳..." width="101" height="64"> <span class="floatR">[09-02]</span><a href="/html/xxyw/2016/09/02/4648a396-c778-4116-ae79-6e61039ad9a3.html" class="floatL" title="我校在山东高校思政课讲课大赛中斩获佳绩">我校在山东高校思政课讲课大赛中斩获佳绩
                <p>近日,第二届山东高校思政课讲课大赛(决赛)在济南举行。经过...</p>
                </a> </li>
                            <li > <img src="/attach/2016/09/02/123920.jpg" title="日照市常务副市长王斌一行来我校调研" alt="日照市常务副市长王斌一行来我校调研" width="101" height="64"> <span class="floatR">[09-02]</span><a href="/html/xxyw/2016/09/02/d6f4656a-7349-4632-8634-27d30daaf3ad.html" class="floatL" title="日照市常务副市长王斌一行来我校调研">日照市常务副市长王斌一行来我校调研
                <p>8月30日,日照市常务副市长王斌一行人来我校进行调研。校长戚...</p>
                </a> </li>
                            <li > <img src="/attach/2016/09/01/123836.jpg" title="我校与济宁高新区签署共建大学生创业孵化基地协议" alt="我校与济宁高新区签署共建大学生创业孵..." width="101" height="64"> <span class="floatR">[09-01]</span><a href="/html/xxyw/2016/09/01/b457fe77-7bdc-4430-a7a2-d58e4c1101bf.html" class="floatL" title="我校与济宁高新区签署共建大学生创业孵化基地协议">我校与济宁高新区签署共建大学生创业孵化基地协议
                <p>8月31日下午,曲阜师范大学与济宁软件园共建大学生创业孵化基...</p>
                </a> </li>
                            <li > <img src="/attach/2016/08/31/123710.jpg" title="学校对科研实验室安全检查工作做出部署" alt="学校对科研实验室安全检查工作做出部署" width="101" height="64"> <span class="floatR">[08-31]</span><a href="/html/xxyw/2016/08/31/a0ead4f5-79fe-4e7c-bdf7-4fef9336de30.html" class="floatL" title="学校对科研实验室安全检查工作做出部署">学校对科研实验室安全检查工作做出部署
                <p>  根据山东省教育厅转发教育部科技司《关于开展2016年度高校...</p>
                </a> </li>
                            <li > <img src="/attach/2016/08/30/123658.jpg" title="学校领导深入各单位检查新学期开学工作" alt="学校领导深入各单位检查新学期开学工作" width="101" height="64"> <span class="floatR">[08-30]</span><a href="/html/xxyw/2016/08/30/d77063c3-8c70-4386-be04-4cb806856332.html" class="floatL" title="学校领导深入各单位检查新学期开学工作">学校领导深入各单位检查新学期开学工作
                <p>     不忘初心再启程,争创一流快起步。8月29日上午,新...</p>
                </a> </li>
                            <li > <img src="/attach/2016/08/30/123654.jpg" title="我校在全国高等院校健身气功赛中获佳绩" alt="我校在全国高等院校健身气功赛中获佳绩" width="101" height="64"> <span class="floatR">[08-30]</span><a href="/html/xxyw/2016/08/30/056dfcb5-ca75-495e-a103-fe426f0a9ff4.html" class="floatL" title="我校在全国高等院校健身气功赛中获佳绩">我校在全国高等院校健身气功赛中获佳绩
                <p>7月24日至29日,2016年全国高等院校健身气功比赛在内蒙古呼和...</p>
                </a> </li>
                            <li > <img src="/attach/2016/08/30/123653.jpg" title="校长戚万学会见新西兰客人" alt="校长戚万学会见新西兰客人" width="101" height="64"> <span class="floatR">[08-30]</span><a href="/html/xxyw/2016/08/30/aa9a0b89-2487-4a8b-ae18-bae1b54facae.html" class="floatL" title="校长戚万学会见新西兰客人">校长戚万学会见新西兰客人
                <p>8月27日下午,新西兰《中新时报》社社长崔立寰先生一行三人应...</p>
                </a> </li>
                            <li > <img src="/attach/2016/08/29/123609.jpg" title="我校学生在全国大学生物理教学技能展示中获骄人成绩" alt="我校学生在全国大学生物理教学技能展示..." width="101" height="64"> <span class="floatR">[08-29]</span><a href="/html/xxyw/2016/08/29/4698415f-0656-42de-a2d5-3e339f721840.html" class="floatL" title="我校学生在全国大学生物理教学技能展示中获骄人成绩">我校学生在全国大学生物理教学技能展示中获骄人成...
                <p>7月29日至31日,由中国教育学会物理教学专业委员会主办的全国...</p>
                </a> </li>
                            <li > <img src="/attach/2016/08/29/123606.jpg" title="2016年算子代数研讨会召开" alt="2016年算子代数研讨会召开" width="101" height="64"> <span class="floatR">[08-29]</span><a href="/html/xxyw/2016/08/29/e378f047-0a90-4a4b-87f1-0154adfdbf62.html" class="floatL" title="2016年算子代数研讨会召开">2016年算子代数研讨会召开
                <p>由曲阜师范大学数学科学学院主办、重庆师范大学数学科学学院协...</p>
                </a> </li>
                            <li > <img src="/attach/2016/08/28/123425.jpg" title="我校2016年暑期干部学习班成功举行" alt="我校2016年暑期干部学习班成功举行" width="101" height="64"> <span class="floatR">[08-28]</span><a href="/html/xxyw/2016/08/28/95986304-7e98-4f5c-942b-30d551f5d4b2.html" class="floatL" title="我校2016年暑期干部学习班成功举行">我校2016年暑期干部学习班成功举行
                <p>8月26日—27日,我校2016年暑期干部学习班在日照校区举行。学...</p>
                </a> </li>
                          </ul>
            <ul style="display: none;">


同样需要爬取到html代码中的新闻标题,图片超链接,由于图片的超链接跟标题跟文章内容的url不在一个标签下,所以在Elements节点需要向上抽取一层,在内层分别做不同的处理

java代码如下

private static void getContent() {
		// TODO Auto-generated method stub
		
		
		
		Document doc;
		
		try {
			doc=Jsoup.connect("http://www.qfnu.edu.cn/").get();
			
			Elements listClass = doc.getElementsByAttributeValue("class", "news-1-lists");
			
			for(Element listElement : listClass){
				
				Elements listName = listElement.getElementsByTag("li");
				
				for(Element element : listName){
					
					//img标签下的数据
					String title =element.getElementsByTag("img").attr("title");					
					String url =element.getElementsByTag("img").attr("src");
					
					//文章链接在a标签下,需要单独处理
					String content = element.getElementsByTag("a").attr("href");
					System.out.println(title+"http://www.qfnu.edu.cn"+url+"文章地址"+content);
				}
				
			}
//			System.out.println(listClass);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}


爬取的结果如下

我校在山东高校思政课讲课大赛中斩获佳绩http://www.qfnu.edu.cn/attach/2016/09/02/123921.jpg文章地址/html/xxyw/2016/09/02/4648a396-c778-4116-ae79-6e61039ad9a3.html
日照市常务副市长王斌一行来我校调研http://www.qfnu.edu.cn/attach/2016/09/02/123920.jpg文章地址/html/xxyw/2016/09/02/d6f4656a-7349-4632-8634-27d30daaf3ad.html
我校与济宁高新区签署共建大学生创业孵化基地协议http://www.qfnu.edu.cn/attach/2016/09/01/123836.jpg文章地址/html/xxyw/2016/09/01/b457fe77-7bdc-4430-a7a2-d58e4c1101bf.html
学校对科研实验室安全检查工作做出部署http://www.qfnu.edu.cn/attach/2016/08/31/123710.jpg文章地址/html/xxyw/2016/08/31/a0ead4f5-79fe-4e7c-bdf7-4fef9336de30.html
学校领导深入各单位检查新学期开学工作http://www.qfnu.edu.cn/attach/2016/08/30/123658.jpg文章地址/html/xxyw/2016/08/30/d77063c3-8c70-4386-be04-4cb806856332.html
我校在全国高等院校健身气功赛中获佳绩http://www.qfnu.edu.cn/attach/2016/08/30/123654.jpg文章地址/html/xxyw/2016/08/30/056dfcb5-ca75-495e-a103-fe426f0a9ff4.html
校长戚万学会见新西兰客人http://www.qfnu.edu.cn/attach/2016/08/30/123653.jpg文章地址/html/xxyw/2016/08/30/aa9a0b89-2487-4a8b-ae18-bae1b54facae.html
我校学生在全国大学生物理教学技能展示中获骄人成绩http://www.qfnu.edu.cn/attach/2016/08/29/123609.jpg文章地址/html/xxyw/2016/08/29/4698415f-0656-42de-a2d5-3e339f721840.html
2016年算子代数研讨会召开http://www.qfnu.edu.cn/attach/2016/08/29/123606.jpg文章地址/html/xxyw/2016/08/29/e378f047-0a90-4a4b-87f1-0154adfdbf62.html
我校2016年暑期干部学习班成功举行http://www.qfnu.edu.cn/attach/2016/08/28/123425.jpg文章地址/html/xxyw/2016/08/28/95986304-7e98-4f5c-942b-30d551f5d4b2.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值