今天接触到一个项目中非要让我用爬虫来爬取一个学校网页的新闻页面加子页面所有文字信息,毕竟需求就是上帝,然后查询了一会之后发现并不难就是匹配字符、标签是有些麻烦
好了直接上pom.xml
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.3</version>
</dependency>
还有一个logger的log文件我感觉没用就直接给删掉了
工具类
package com.bing.util;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
public class joUtil {
public static void main(String[] args){
try {
Document doc = Jsoup.connect("http://soft.zut.edu.cn/") .timeout(60000).get();
doc.html();
Element tagElement = doc.getElementsByClass("news").first();
// String[] str = new String[10];
// String[] href = new String[10];
for(int i=0;i<tagElement.getElementsByTag("li").size();i++){
System.out.println(tagElement.getElementsByTag("li").get(i));
System.out.println(tagElement.getElementsByTag("a").get(i).attr("href"));
System.out.println("http://soft.zut.edu.cn/"+tagElement.getElementsByTag("a").get(i).attr("href"));
Document doc2 = Jsoup.connect("http://soft.zut.edu.cn/"+tagElement.getElementsByTag("a").get(i).attr("href")) .timeout(60000).get();
doc2.html();
Elements tagElement2 = doc2.getElementsByClass("v_news_content");
Elements tagTitle = doc2.getElementsByClass("titlestyle67237");
System.out.println("子页面爬取开始---->");
System.out.println("标题");
System.out.println(tagTitle.text());
System.out.println("正文");
System.out.println(tagElement2.text());
System.out.println("子页面爬取结束--->");
// str[i] = tagElement.getElementsByTag("li").get(i).text();
// System.out.println("第几次爬取?");
// System.out.println(i);
}
// for (String s : str) {
// System.out.println(s);
// }
} catch (IOException e) {
e.printStackTrace();
}
}
}
最后运行
这是一个学校官网的页面爬取 再进行子页面的新闻信息爬取 直接通过Document的元素操作进行的 毕竟第一次接触还算不错想要的信息都爬取出来了 大家有更好的方法欢迎艾特我 谢谢