java Jsoup 爬取网页数据

建议先去看看API文档。

先上一段代码,然后在慢慢分析。

public class Test {
	public static void main(String args[]) throws Exception  {
		Document doc = Jsoup.connect("http://www.cjmsa.gov.cn/9/368/2/39/62/").get();// 解析该网页,获取html文本内容
		Elements alltitle = doc.select("div.lie>ul>li");// 获取这个html页面中类型为lie的div下的ul下的li,跟css的选择器一样
		for (Element data : alltitle) { // 遍历多个li标签
			String url = data.select("a").attr("href");// 获取li中a标签的href属性值(超链接)
			String time=data.select("span").text();//获取时间
			Document doc1 = Jsoup.connect("http://www.cjmsa.gov.cn" + url).get();// 因为文章内容不在不在doc中,所以通过获取到的url再次解析()
			Elements p = doc1.select("font#artibody>p");// <font id="artibody">这就是获取的内容<p></p></font>
			String content=p.text();
			System.out.println("网页路径为:"+url+"内容:"+content+"时间:"+time);
		}
	}
}

1.获取标签信息常用的几个方法

 select 它的用法跟css选择器的用法一样,这也是Jsoup 的强大之处(可看第4行代码)

getElementsByClass 根据标签class的值进行解析。

getElementById 根据标签的id的值进行解析

2.select什么时候用

当我们需要爬取的内容没有class 和id 时,只有一个标签,我们就需要通过select 来获取他的内容

3.text(),html(),attr()

这几个是比较常用的,很实用的属性,首先text是获取该对象的文本信息,

html是获取该对象下面所有的html信息(包括文本,有时候有奇效,例如table, 我可以将table直接显示到自己的网页,还不需要自己写样式 )

attr()是获取改对象标签中某属性的值


以上的方法可以解决爬取数据的大部分问题


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值