概述
使用jsoup来进行网页数据爬取。jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
详细
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
jsoup的主要功能如下:
1. 从一个URL,文件或字符串中解析HTML;
2. 使用DOM或CSS选择器来查找、取出数据;
3. 可操作HTML元素、属性、文本;
jsoup是基于MIT协议发布的,可放心使用于商业项目
第一步:项目预览
第二步:代码实现
主程序为GrapNews类,实现了从汽车网摘取相关内容的功能。GrapNews有main函数,执行即可。
package net.sinolbs.ycd.news;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
/**
* TODO
* 2017年5月21日上午12:25:30
*/
public class GrapNews {
public static boolean isContainChinese(String str) {
Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
Matcher m = p.matcher(str);
if (m.find()) {
return true;
}
return false;
}
/**
* 从笑话集抓取笑话
* @param size
* @param baseUrl
* @param domainName
* @param newsListClassOrId
* @param classOrId
* @param newsULIndex
* @param newsContentClassOrId
* @param titleTagOrClass
* @param dateTag
* @return
*/
public static ArrayList<News> getNewsFromJokeji(int size,String baseUrl,String domainName,
String newsListClassOrId,int newsULIndex,
String newsContentClassOrId,String titleTagOrClass,String dateTag){
ArrayList<News> newsList = new ArrayList<News>();
Document doc;
Element element =null;
Element title =null;
News news = null;
try {
doc = Jsoup.connect(baseUrl).timeout(10000).get();
element = (Element) doc.getElementsByClass(newsListClassOrId).first();
Elements