本人最近几天学习使用HttpClient包读取网页上的数据,运行博客http://ducaijun.iteye.com/blog/1335453上的例子:

1.首先打开Eclipse,File->New->Java Project,生成一个Java工程;

2. 然后下载HttpClient这个Java包和Jsoup这个Java包,然后将他们导入自己建立的工程。根据版本不同可能还需要commons-codec,commons-logging,httpcore等Java包;

3. 右键工程,New->Class,添加一个类,类名取为JustTest (与例http://ducaijun.iteye.com/blog/1335453中类同),将例程中代码拷贝进入类文件;

这里或许可以将网页上的代码copy进txt存成文件,然后作为现成的类直接导入工程中。但是偶是新手,暂时还不会。所以用笨方法。

4. 可能会因为HttpClient等包的版本问题出现一些红叉叉,提示不能识别一些标识符。这个时候我的笨方法就俩,(1)使用最高版本HttpClient\HttpCore\Jsoup,把.jar解压完,然后 直接搜不能识别的类,如果搜到就把所在的package路径 import进入JustTest中;(2)遇到上述无法解决或者提示函数已经废弃不用的,就按照提示去谷歌里面搜,一般能找到解决方案的.

5. 如下显示代码:

package testLoadHttp;

import org.apache.http.HttpEntity;  
import org.apache.http.HttpStatus; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils; 
import org.apache.http.client.methods.CloseableHttpResponse;

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements;

public class JustTest {

public static String getHtmlByUrl(String url) { 
          String html = null; 
          CloseableHttpClient httpClient = HttpClients.createDefault();

HttpGet httpget = new HttpGet(url);// 以get方式请求该URL  
          try { 
          CloseableHttpResponse responce = httpClient.execute(httpget);
          int resStatu = responce.getStatusLine().getStatusCode();// 返回码 
               if (resStatu == HttpStatus.SC_OK)
               { 
                  HttpEntity entity = responce.getEntity(); 
                   if (entity != null)
                   { 
                       html = EntityUtils.toString(entity);// 获得html源代码 
                      System.out.println(html); 
                  } 
               } 
         } catch (Exception e) { 
             System.out.println("访问【" + url + "】出现异常!"); 
              e.printStackTrace(); 
          } finally { 
              httpClient.getConnectionManager().shutdown(); 
         }
         // httpClient.close();
  
          return html; 
     }

public static void main(String[] args) { 
          String html = getHtmlByUrl("http://www.iteye.com/");   
          if (html != null && !"".equals(html))
          { 
              Document doc = Jsoup.parse(html); 
              {
               String str0="div#page>div#content.clearfix>div#local>div#recommend>ul>li>a";
               Elements linksElements = doc.select(str0); 
               for (Element ele : linksElements)
               { 
                   String href = ele.attr("href"); 
                   String title = ele.text(); 
                           System.out.println(href + "," + title); 
               }  
              }

             
              {
             
               String str0="div#page>div#content.clearfix>div#local>div#recommend>ul>li";
               Elements linksElements = doc.select(str0);  
               for (Element ele : linksElements)
               {  
                  String href = ele.attr("href"); 
                  String target=ele.attr("target");
                  String title=ele.attr("title");      
                  System.out.println("href:"+href + ",target:" + target+",title:"+title); 
               } 
              }     

         }

//**********************************************  
     }

}

6. 解释,该JustTest类中只有两个函数getHtmlByUrl和main函数。其中getHtmlByUrl负责根据网址获取网页内容的字符串形式。

Jsoup.parse函数将该字符串进行解析。然后根据组织方式查找,这一点偶也不太懂,只是照葫芦画瓢。

7. 详解:本程序要找http://www.iteye.com/中推荐的精华文章 如下图所示:

然后我用天行浏览器(XSkyWalker)打开该网址,右键->审查元素,然后出现如下页面,

似乎上述粉色代码部分通过getEntity函数获取的就是Element标签下body中的内容;

补充说明下,天行浏览器和Chrome浏览器都有右键“审查元素”,而IE浏览器/天行/Chrome下,都可通过F12打开此页面。

天行浏览器下还可以通过Ctrl+F来查找标签下的内容。

使用天行浏览器很方便,比如 “推荐精华文章”在哪个组织下呢? 如下所示点击浏览器中的某个内容,然后右键“审查元素”,就可跳转至其在Http Element中所在的位置

8. 调试显示的中间变量如下:

黄色代码部分生成的变量LinkElements:

黄色代码部分生成的变量ele:

红色代码部分生成的变量LinkElements:

红色代码部分生成的变量ele:

看到黄色和红色部分的区别了吧?

9. 接下来工作是,对于有多个视图的网页(如下图所示),学习如何使用网页跳转来把所有相关内容都下载到。

使用Eclipse+httpClient+Jsoup读取网页数据-初级相关推荐

  1. java通过url获取网页内容_Java语言通过URL读取网页数据并保存到本地文件(代码实例)...

    本文主要向大家介绍了Java语言通过URL读取网页数据并保存到本地文件(代码实例),通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. Java通过URL读取网页数据并保存到本地文件(代码 ...

  2. C# 操作地址 从内存中读取写入数据(初级)

    本示例以植物大战僵尸为例, 实现功能为 每1秒让阳光刷新为 9999.本示例使用的游戏版本为 [植物大战僵尸2010年度版], 使用的辅助查看内存地址的工具是  CE. 由于每次启动游戏, 游戏中阳光 ...

  3. java用jsoup爬网页数据_java使用jsoup爬取网页数据

    1.导入依赖 org.jsoup jsoup 1.11.3 1.解析一个html字符串 示例如下:String html = " 这是P元素的内容 ";Document docum ...

  4. python网页表格读取_是否可以读取网页html表格数据?

    我目前正在考虑一些自动读取网页数据.因此,有没有可能从网页中读取以下类型的表格:excel应该有一个值name of condion,Operator and Expressions.在 编辑> ...

  5. Java网页数据抓取实例

    在很多行业中,要对行业数据进行分类汇总,及时分析行业数据,对于公司未来的发展,有很好的参照和横向对比.所以,在实际工作,我们可能要遇到数据采集这个概念,数据采集的最终目的就是要获得数据,提取有用的数据 ...

  6. 易语言浏览本地html,简单的易语言读取网页文本程序

    就是读取这个网页的内容 效果看下图 源代码: ============================================================================= ...

  7. R语言数据读取以及数据保存

    一.R语言读取文本文件: 1.文件目录操作: getwd() : 返回当前工作目录 setwd("d:/data")  更改工作目录 2.常用的读取指令read read.tabl ...

  8. java 爬取网页数据 多页爬取 jsoup 和 httpClient 实现

    预览结果视图 目录 预览结果视图 介绍 代码 依赖 爬取网页数据代码 解析代码 解析介绍 完整代码 介绍 1.爬取通过org.jsoup 和HttpClients实现 2.爬取多页内容的时候进行循环, ...

  9. Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索

    Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索 一.资源 为什么接下来的代码中要使用el.getElementsByTa ...

最新文章

  1. Python 的列表的一些方法
  2. maven 多模块项目:单独构建某个模块
  3. java开发错误_每个Java开发人员都必须避免的9个安全错误
  4. python语言的类型是_Python的语言类型
  5. php中一个字符占用几个字节?
  6. 让代码不运行的快捷键html5,使用 vscode 实现写代码双手不用离开键盘
  7. 各种进制的学习与转换
  8. 如何使用iMazing备份、恢复《暴力飞车》游戏存档
  9. 【高效程序员系列】1、好马配好鞍——舒适的工作环境
  10. opendrive文件结构
  11. Python实现多重弹窗脚本 整蛊朋友
  12. C语言float去尾法输出,c语言去尾法怎么写
  13. SuperMap iDesktop常见问题解答集锦 (二)
  14. 回归分析的五个基本假设
  15. js 移动端 下载 doc文件
  16. 六年级计算机学习,小学六年级计算机学习教案(24页)-原创力文档
  17. 利用PYTHON连接阿里云物联网平台
  18. android 目录作用,Android中各级目录的作用说明
  19. cocos2dx-lua 圆周运动
  20. 使用PowerShell下载必应图片

热门文章

  1. 俄罗斯鲍曼的计算机什么水平,俄罗斯莫斯科鲍曼国立技术大学专家建议在近地轨道上放置一台27吨重的超级计算机...
  2. LDA主题模型评价指标汇总
  3. Windows server 2008 基础知识
  4. 阿里云出现源代码泄露企业 涉及万科等40家企业200余项目
  5. php文件可以用ps吗,eps是什么文件?怎么打开?用什么软件打开?EPS与PS文件的区别在哪里...
  6. react+antd+react-to-print实现打印功能,ie浏览器可去掉滚动条
  7. linux下u盘网卡驱动,通过u盘给linux安装网卡驱动的做法——深圳培训linux
  8. 智慧社区网格化管理php,智慧社区网格化服务管理信息平台
  9. 想学点东西,可是心静不下去。纠结…
  10. python素数生成器_在python中用滤波器和生成器生成无穷素数