`

Jsoup抓取

阅读更多

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 + "失败!!!");
		}
	}
 

 

 

 

分享到:
评论

相关推荐

    httpClient+jsoup 抓取网页数据

    4. **结合HttpClient和Jsoup抓取网页数据**: - 使用HttpClient发送HTTP请求,获取网页的HTML内容。 - 将HttpClient获取的HTML内容传递给Jsoup的parse方法,得到Document对象。 - 利用Jsoup的CSS选择器和数据提取...

    Jsoup抓取整个网站

    **Jsoup:网页抓取与解析利器** Jsoup是一个用于处理实际世界HTML的Java库。它提供了非常方便的API,用于提取和操作数据,使用DOM,CSS和微选择器。在本篇中,我们将深入探讨如何使用Jsoup来抓取整个网站,并将其...

    Jsoup抓取一个完整的网站.rar

    在这个"Jsoup抓取一个完整的网站.rar"压缩包中,你将找到一个示例项目,教你如何使用Jsoup配合Java来抓取一个网站的所有资源,包括图片、CSS样式表和JavaScript文件,并在本地按照原始网站的目录结构进行保存。...

    jsoup抓取网页教程

    很实用的jsoup抓取网页教程,通过查看此文档,您可以解决你在抓取网页过程中出现的问题

    Java使用Jsoup抓取网页关键信息并入库

    在"Java使用Jsoup抓取网页关键信息"这部分,我们需要了解以下几个知识点: 1. **Jsoup连接与解析网页**:使用Jsoup的`connect()`方法建立HTTP连接,然后通过`get()`或`post()`发送请求获取网页内容。获取到的HTML...

    java+jsoup抓取网页数据

    以下是关于如何使用Java+Jsoup抓取网页数据的详细讲解。 首先,你需要了解HTML的基础结构,因为Jsoup的工作原理是解析HTML文档并提供类似于DOM的API来操作这些文档。HTML是由标签组成的树形结构,每个标签都有属性...

    用jsoup抓取网页数据

    **Jsoup:网页数据抓取与JSON转换** ...本教程将深入探讨如何...通过以上步骤,你已经掌握了使用Jsoup抓取网页数据并转化为JSON格式的基本方法。在实际应用中,可以根据需求进行定制和扩展,以满足各种复杂场景的需求。

    jsoup抓取网页内容

    这是一个使用jsoup抓取网页内容的例子,适合从事手机开发的初学者学习

    安卓listview相关相关-实现浏览新浪新闻jsoup抓取网页信息listview列表下拉刷新.rar

    本项目"安卓listview相关-实现浏览新浪新闻jsoup抓取网页信息listview列表下拉刷新.rar"旨在演示如何结合Jsoup库从新浪新闻网站抓取信息,并通过ListView展示这些信息,同时实现下拉刷新功能,提升用户体验。...

    Jsoup抓取实例

    同时,对于动态加载的内容,可能需要利用Selenium等工具先触发页面的JavaScript执行,然后再用Jsoup抓取。 在提供的"coolook_self"压缩包文件中,可能包含了一个自定义的Jsoup抓取示例。这可能是一个Java项目,其中...

    使用Jsoup抓取网页关键信息并入库 ip天气查询并发送邮件

    本项目将讲解如何使用Jsoup来抓取网页的关键信息,并将其存储到数据库中,同时实现通过IP地址查询天气并以邮件形式发送。 首先,Jsoup提供了简洁的API,使得解析HTML变得易如反掌。我们可以利用Jsoup的`connect()`...

    Android项目源码简单利用jsoup爬取学校内网数据

    本项目是一个基于安卓的简单利用jsoup爬取学校内网数据的教务系统app,设计的部分有:个人信息、课程表、考试时间、考勤信息、成绩查询、奖惩情况、开设课程、晚归违规等部分。主要思路就是利用jsoup爬数据把数据转化...

    httpClient+jsoup抓取网页数据实例和jar包

    本教程将详细介绍如何结合使用HttpClient与Jsoup来抓取和处理网页数据。 HttpClient是Apache基金会开发的一个开放源代码库,它允许开发者发送HTTP请求并接收响应,支持多种HTTP协议版本。HttpClient提供了丰富的...

    jsoup抓取某网站关键字查询列表的所有文章,并生成文档

    前两天因为一个业务需求,需要从某网站爬取某个关键字搜索结果的所有文章,于是加班做了一个基于jsoup的爬虫程序,可以将特定关键字的搜索结果里所有的文章爬取到,并以文件的形式保存到本地,支持分页爬取。...

    用Jsoup抓取长颈鹿但丁图片

    NULL 博文链接:https://luan.iteye.com/blog/1722530

    jsoup1.8.1抓取爬虫工具

    例如,新闻聚合应用可能会使用jsoup抓取多个网站的新闻标题,社交媒体分析工具可能利用它提取用户评论,而开发者则可能用它来测试网页的HTML结构是否符合预期。 总的来说,jsoup1.8.1是一个强大的HTML解析和数据...

    Android App使用Jsoup抓取网页数据显示-附件资源

    Android App使用Jsoup抓取网页数据显示-附件资源

    jsoup多线程爬虫

    此外,项目中可能还包含了`jsoupDemo.docx`文件,这可能是一个详细的文档,包含了更多关于如何使用jsoup和多线程抓取新闻的步骤和示例代码。而`jsoup-1.10.2.jar`是jsoup库的版本,确保将其添加到项目的类路径中,...

Global site tag (gtag.js) - Google Analytics