java爬虫抓取网页数据( 如何获取学校官网的信息是否会侵权?会问)
优采云 发布时间: 2021-12-17 23:01java爬虫抓取网页数据(
如何获取学校官网的信息是否会侵权?会问)
Jsoup实现网络爬虫抓取数据
在编写软件时,例如教务软件,需要从学校官网获取一些新闻信息来丰富你的软件,但不会专门提供相关的api接口。这时候就需要我们自己动手捕捉我们感兴趣的信息了。有人会问,爬取网站的信息会不会侵权。事实上,通过浏览器可以访问的信息一般都是公开的,抓取后不用于盈利也无所谓。它只是改变了浏览方式。
获取整个网页的源码
要抓取网页中的信息,首先要获取整个网页的源代码
String url = "http://i.guet.edu.cn/";
Document doc = Jsoup
.connect(url)
.timeout(1000).get();
通过Jsoup中的方法,我们可以很方便的获取到目标网页的源Document对象。好了,拿到整个网页的源码后,下一步就是抓取我们想要的信息了。现在我们要获取的是网页上滑动条幅的图片地址,如下图:
可以通过以下代码轻松获取图片的相对URL
Elements elements = doc.select("div#pic_lun");
Elements elements2 = elements.select("img");
for (Element el:elements2){
System.out.println(el.attr("src"));
}
控制台输出如下:
这样,我们就得到了我们想要的信息。另一个例子是获取新闻:
页面信息:
html源代码部分:
然后我们尝试爬取:
String url_news = "http://i.guet.edu.cn/news.php?page=1&type=85";
Document doc = Jsoup
.connect(url_news)
.timeout(1000).get();
Elements e1 = doc.select("div#content_middle");
Elements e2 = e1.select("a");
// System.out.print(e2);
for (Element el2 : e2) {
if (el2.text().length() > 20) {
StringBuffer sb = new StringBuffer();
sb.append(el2.text());
String time = sb.substring(0, 9);
String title = sb.substring(12);
System.out.print("time:"+time+"\n");
System.out.print("title:"+title+"\n");
System.out.print("link:"+"http://i.guet.edu.cn/"+el2.attr("href")+"\n");
}
}
控制台输出如下:
至此,数据抓取完成,必须将数据添加到listview中才能显示数据。只有数据有意义,革命还没有成功,同志们还需要努力。
我是菜鸟,如有错误请指正,文章原创