1.下载Jsoup核心库
地址: http://jsoup.org/download
2.使用
/**
* 获取Document对象
* @param sourceUrl 连接地址
* @return doc Document对象
* @author chitianxiang $Feb 6th, 2012
*/
static private Document getDocment(String sourceUrl) throws IOException {
Connection conn = Jsoup.connect(sourceUrl);
/*
* 500错误
* 对方知道你是爬虫,直接给你拒绝访问,
* header中要加入相关信息,稍微伪装下
*/
conn.header("User-Agent", "Mozilla/5.0 (Macintosh; "
+ "U; Intel Mac OS X 10.4; en-US; "
+ "rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
return conn.timeout(MAX_CONNECT_TIME).get();
}
private static final int JSOUP_TIMEOUT_MAX_VAL = 10000; //Jsoup抓取时最长响应时间
private static Map<String, String[]> data; //数据源
private static final String SINA = "新浪";
private static final String IFENG = "凤凰网";
/**
* 初始化加载数据源
* @author chitianxiang 2011/11/3
*/
public static void init() throws Exception{
System.out.println("开始加载数据源...");
if (null != data && !data.isEmpty()) {
return;
}
data = new HashMap<String, String[]>();
data.put("焦点新闻1", new String[]{SINA, "http://rss.sina.com.cn/news/china/politics15.xml"});
data.put("焦点新闻2", new String[]{IFENG, "http://news.ifeng.com/mainland/"});
}
/**
* 获取对应的数据源信息
* @param intactTypeName 完整类型名称
* @author chitianxiang 2011/11/3
*/
public static List<String[]> getDataLst(String intactTypeName)
throws Exception{
List<String[]> list = new ArrayList<String[]>();
if (null == data) {
init();
}
for (String str : data.keySet()) {
if ((str.indexOf(intactTypeName) != -1)
&& (null != data.get(str))) {
list.add(data.get(str));
}
}
return list;
}
/**
* 抓取列表数据
* @param sourceName 网站名称
* @param sourceUrl 网址
* @param map 集合
* @author chitianxiang 2011/11/3
*/
public static void doGrab2Lst(String sourceName, String sourceUrl, Map map) throws Exception{
if (SINA.equals(sourceName)) {
grabLstBySina(sourceName, sourceUrl, map);
} else if (IFENG.equals(sourceName)) {
grabLstByIfeng(sourceName. sourceUrl, map);
}
}
/**
* 抓取新浪阅读列表数据
* @param sourceName 网站名称
* @param sourceUrl 网址
* @param map 集合
* @author chitianxiang 2011/11/5
*/
private static void grabLstBySina(String sourceName, String sourceUrl, Map map)
throws Exception{
try {
Document doc = getDocument(sourceUrl);
Elements elements = doc.select("item");
for (Element element : elements) {
String title = element.select("title").text(); //标题
String content = element.select("description").text(); //显示内容
if ("".equals(showContent)) {
continue;
}
String outUrl= element.select("guid").text(); //外链URl
}
} catch (Exception e) {
System.out.println("抓取" + sourceName + "失败!!!");
}
}
分享到:
相关推荐
使用jsoup,抓取整个网站,保存在本地。包括网站的“css、js、图片、页面”,都会保存在本地。并且保存的路径痛网站上的路径。经过测试,一般的基础网站都可以抓取。
很实用的jsoup抓取网页教程,通过查看此文档,您可以解决你在抓取网页过程中出现的问题
使用jsoup抓取网页列表信息,并入库,使用了PreparedStatement防止sql注入小demo。
使用Jsoup抓取网页关键信息并入库 ip天气查询并发送邮件
利用Jsoup抓取一个完整的网站,包括网站的图片、css、js等。同时根据网站目录,在本地生成相同目录。使用Jsoup+Java。下载之后,可以直接运行。
这是一个使用jsoup抓取网页内容的例子,适合从事手机开发的初学者学习
httpClient+jsoup抓取网页数据实例和jar包
Jsoup抓取,导入直接测试
实现浏览新浪新闻jsoup抓取网页信息 listview列表 下拉刷新.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
使用java+jsoup进行网页数据的抓取,提取自己想要的数据
本项目是一个基于安卓的简单利用jsoup爬取学校内网数据的教务系统app,设计的部分有:个人信息、课程表、考试时间、考勤信息、成绩查询、奖惩情况、开设课程、晚归违规等部分。主要思路就是利用jsoup爬数据把数据转化...
Jsoup 抓取页面的数据 需要使用的是jsoup-1.7.3.jar包 如果需要看文档我下载请借一步到官网:http://jsoup.org/ 这里贴一下我用到的 Java工程的测试代码 package com.javen.Jsoup; import java.io....
利用httpClient+jsoup技术进行网页数据的获取,以网易贵金属为例~
抓取网页上想要的内容~最后转化成json格式
这是一个多线程用jsoup抓取网站新闻内容的demo,详细的代码示例,使用这个工具类主要知道如何从抓取的html文档里根据标签取内容就OK了。简单粗暴。
前两天因为一个业务需求,需要从某网站爬取某个关键字搜索结果的所有文章,于是加班做了一个基于jsoup的爬虫程序,可以将特定关键字的搜索结果里所有的文章爬取到,并以文件的形式保存到本地,支持分页爬取。...
NULL 博文链接:https://luan.iteye.com/blog/1722530
本篇文章主要介绍了android使用Jsoup 抓取页面的数据,jsoup 是一款Java的HTML解析器,有需要的朋友可以了解一下。
Android App使用Jsoup抓取网页数据显示-附件资源