- package ivyy.taobao.com.domain.xml;
- import ivyy.taobao.com.utils.GlobalConstants;
- import java.net.URL;
- import org.jsoup.Jsoup;
- import org.jsoup.nodes.Element;
- import org.jsoup.select.Elements;
- /**
- *@Author:liangjilong
- *@Date:2015-1-4
- *@Email:jilongliang@sina.com
- *@Version:1.0
- *@Description这个是通过jsoup处理的
- */
- public class SinaNew {
- public static void main(String[] args)throws Exception {
- String requestURL = GlobalConstants.getUrl(2, "xml");
- org.jsoup.nodes.Document doc=Jsoup.parse(new URL(requestURL), 3000);
- // String html=doc.html();
- Elements items=doc.select("item");//获取item(item具有多个节点)
- String title = "", url = "", keywords = "", img = "", media_name = "";
- int i=1;
- for (Element its : items) {
- title=its.select("title").html();
- url=its.select("url").html();
- keywords=its.select("keywords").html();
- img=its.select("img").html();
- media_name=its.select("media_name").html();
- String newsText=GlobalConstants.getNewsContent(url);//处理新闻内容
- //System.out.println(title + "\n" + url + "\n" + keywords + "\n"+ url + "\n" + media_name);
- System.out.println("==================第"+i+"篇=================="+newsText);
- i++;
- }
- }
- }
源代码:http://download.csdn.net/detail/jilongliang/8324543
- package ivyy.taobao.com.utils;
- import java.net.URL;
- import org.jsoup.Jsoup;
- import org.jsoup.nodes.Document;
- /**
- *@Author:liangjilong
- *@Date:2015-1-4
- *@Email:jilongliang@sina.com
- *@Version:1.0
- *@Description
- */
- public class GlobalConstants {
- /***
- * 获取url连接
- * @param page第几页
- * @param format格式(XML、JSON)
- * @return
- */
- public static String getUrl(Integer page,String format){
- StringBuffer buffer=new StringBuffer("http://api.roll.news.sina.com.cn/zt_list?channel=news");
- String url="";
- buffer.append("&cat_1=shxw");//显示新闻
- buffer.append("&cat_2==zqsk||=qwys||=shwx||=fz-shyf");
- buffer.append("&level==1||=2");//级别
- buffer.append("&show_ext=1");
- buffer.append("&show_all=1");//显示所有
- buffer.append("&show_num=22");//显示多少条
- buffer.append("&tag=1");
- buffer.append("&format="+format);
- buffer.append("&page="+page);
- buffer.append("&callback=newsloader");
- url=buffer.toString();
- return url;
- }
- /***
- * 获取文章的内容
- * 从新浪的网页分析,通过文章body的id就可以拿到相应的文章内容..
- * @param url
- * @return
- */
- public static String getNewsContent(String url) throws Exception{
- Document doc=Jsoup.parse(new URL(url), 3000);
- if(doc!=null){
- String artibody=doc.getElementById("artibody").html();//通过网页的html的id去拿到新闻内容artibody
- return artibody;
- }else{
- return "网络异常";
- }
- }
- }
- package ivyy.taobao.com.utils;
- import java.io.BufferedReader;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.net.HttpURLConnection;
- import java.net.URL;
- /**
- *@Author:liangjilong
- *@Date:2015-1-4
- *@Email:jilongliang@sina.com
- *@Version:1.0
- *@Description
- */
- public class HttpRequestUtils {
- /**
- * 发送http请求
- * POST和GET请求都可以
- * @param requestUrl 请求地址
- * @param method传入的执行的方式 是GET还是POST方式
- * @return String
- */
- public static String HttpURLConnRequest(String requestUrl,String method) {
- StringBuffer buffer = new StringBuffer();
- try {
- URL url = new URL(requestUrl);
- HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();
- httpUrlConn.setDoInput(true);
- httpUrlConn.setRequestMethod(method);
- httpUrlConn.setUseCaches(false);
- httpUrlConn.setInstanceFollowRedirects(true); //重定向
- httpUrlConn.connect();
- // 将返回的输入流转换成字符串
- InputStream inputStream = httpUrlConn.getInputStream();
- InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
- BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
- String str = null;
- while ((str = bufferedReader.readLine()) != null) {
- buffer.append(str);
- }
- bufferedReader.close();
- inputStreamReader.close();
- // 释放资源
- inputStream.close();
- inputStream = null;
- httpUrlConn.disconnect();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return buffer.toString();
- }
- }
相关推荐
在新浪高尔夫频道的新闻抓取中,我们可以先通过jsoup连接到目标URL,然后使用CSS选择器找到新闻列表的元素。例如,如果新闻标题在class为"news-item-title"的元素中,我们可以这样获取: ```java Document doc = ...
猪猪RSS新闻抓取源码新闻用的是Jsoup抓取自新浪RSS新闻源,天气信息用SAX解析器解析的一个网络XML天气源(2.3.3系统测试不可用,没有使用更高版本测试),新闻主页面可以实现类似于广告图片轮播的效果,新闻列表也可以...
新浪新闻爬虫程序是利用Java编程语言开发的一种自动化工具,其主要目的是抓取新浪新闻网站上的特定信息,并将其整理保存为TXT文本格式。这个程序的核心技术是Jsoup库,一个强大的Java库,专门用于处理HTML文档,提取...
本文将详细介绍如何使用Java库jsoup来抓取新浪新闻的网页信息,并结合ListView组件展示数据,同时实现列表的下拉刷新功能。jsoup是一个强大的HTML解析库,能够方便地提取和操作网页数据。 首先,我们需要理解jsoup...
这个"android新浪新闻网页抓取Demo源码"就是一个很好的学习案例,它演示了如何从新浪新闻网站抓取数据并展示在Android应用中。本文将深入解析这个Demo的核心知识点,帮助你理解和掌握Android网络编程的基础。 首先...
在“新浪新闻APP”项目中,JSoup的主要作用是抓取新浪网的新闻源码,解析出新闻标题、内容、发布时间等关键信息。 2. **HTML解析**:JSoup能够解析HTML文档,通过CSS选择器定位到特定元素,例如新闻标题所在的`<h2>...
感兴趣的朋友可以在网站上搜一下“网易”两个字就可以看到相关源码了,本项目的新闻用的是Jsoup抓取自新浪RSS新闻源,天气信息用SAX解析器解析的一个网络XML天气源(2.3.3系统测试不可用,没有使用更高版本测试),...
在Android平台上,开发一款能够抓取并展示新闻的...以上就是Android抓取新闻Demo程序的主要技术要点,涵盖了网络通信、数据解析、UI设计、本地存储、权限管理等多个方面,对Android开发者来说是一次全面的实战训练。
猪猪RSS新闻抓取源码新闻用的是Jsoup抓取自新浪RSS新闻源,天气信息用SAX解析器解析的一个网络XML天气源(2.3.3系统测试不可用,没有使用更高版本测试),新闻主页面可以实现类似于广告图片轮播的效果,新闻列表也可以...
总的来说,基于新浪RSS的Android RSS阅读器源码提供了一个学习和研究Android网络编程、XML解析、UI设计和数据管理的好案例。通过深入学习和修改这个源码,开发者不仅可以掌握RSS阅读器的实现,还能提升自己在Android...
源码可能使用了XML或JSON解析库,如Jsoup、Gson或Jackson,将网页内容转换为可操作的对象模型。 3. **Android布局**:新闻列表和详情页的界面设计是通过Android的布局系统实现的,如LinearLayout、RelativeLayout、...
修改配置文件可以轻松切换目标站点,比如从抓取新浪科技切换到抓取其他板块或网站。 10. **异常处理与日志记录**:在爬虫开发中,异常处理是必不可少的,以应对可能出现的网络错误、解析错误等。同时,日志记录可以...
描述中的"sina微博网络爬虫.rar"表明这是一个压缩文件,包含了实现抓取新浪微博数据的完整代码。RAR是一种常见的压缩文件格式,用于打包和压缩多个文件以便于存储和传输。用户需要解压此文件后查看和运行其中的代码...
依据给定的一组URL抓取新浪博客正文 并按照文章发表的时间进行分类 引入的jar文件有 jsoup-1.7.2.jar commons-io-2.4.jar ##[2014-07-23 Spide163News] () 网易新闻国内新闻的抓取 对网页进行简单的解析 保留新闻...