使用Eclipse+httpClient+Jsoup读取网页数据-初级
本人最近几天学习使用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读取网页数据-初级相关推荐
- java通过url获取网页内容_Java语言通过URL读取网页数据并保存到本地文件(代码实例)...
本文主要向大家介绍了Java语言通过URL读取网页数据并保存到本地文件(代码实例),通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. Java通过URL读取网页数据并保存到本地文件(代码 ...
- C# 操作地址 从内存中读取写入数据(初级)
本示例以植物大战僵尸为例, 实现功能为 每1秒让阳光刷新为 9999.本示例使用的游戏版本为 [植物大战僵尸2010年度版], 使用的辅助查看内存地址的工具是 CE. 由于每次启动游戏, 游戏中阳光 ...
- java用jsoup爬网页数据_java使用jsoup爬取网页数据
1.导入依赖 org.jsoup jsoup 1.11.3 1.解析一个html字符串 示例如下:String html = " 这是P元素的内容 ";Document docum ...
- python网页表格读取_是否可以读取网页html表格数据?
我目前正在考虑一些自动读取网页数据.因此,有没有可能从网页中读取以下类型的表格:excel应该有一个值name of condion,Operator and Expressions.在 编辑> ...
- Java网页数据抓取实例
在很多行业中,要对行业数据进行分类汇总,及时分析行业数据,对于公司未来的发展,有很好的参照和横向对比.所以,在实际工作,我们可能要遇到数据采集这个概念,数据采集的最终目的就是要获得数据,提取有用的数据 ...
- 易语言浏览本地html,简单的易语言读取网页文本程序
就是读取这个网页的内容 效果看下图 源代码: ============================================================================= ...
- R语言数据读取以及数据保存
一.R语言读取文本文件: 1.文件目录操作: getwd() : 返回当前工作目录 setwd("d:/data") 更改工作目录 2.常用的读取指令read read.tabl ...
- java 爬取网页数据 多页爬取 jsoup 和 httpClient 实现
预览结果视图 目录 预览结果视图 介绍 代码 依赖 爬取网页数据代码 解析代码 解析介绍 完整代码 介绍 1.爬取通过org.jsoup 和HttpClients实现 2.爬取多页内容的时候进行循环, ...
- Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索
Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索 一.资源 为什么接下来的代码中要使用el.getElementsByTa ...
最新文章
- Python 的列表的一些方法
- maven 多模块项目:单独构建某个模块
- java开发错误_每个Java开发人员都必须避免的9个安全错误
- python语言的类型是_Python的语言类型
- php中一个字符占用几个字节?
- 让代码不运行的快捷键html5,使用 vscode 实现写代码双手不用离开键盘
- 各种进制的学习与转换
- 如何使用iMazing备份、恢复《暴力飞车》游戏存档
- 【高效程序员系列】1、好马配好鞍——舒适的工作环境
- opendrive文件结构
- Python实现多重弹窗脚本 整蛊朋友
- C语言float去尾法输出,c语言去尾法怎么写
- SuperMap iDesktop常见问题解答集锦 (二)
- 回归分析的五个基本假设
- js 移动端 下载 doc文件
- 六年级计算机学习,小学六年级计算机学习教案(24页)-原创力文档
- 利用PYTHON连接阿里云物联网平台
- android 目录作用,Android中各级目录的作用说明
- cocos2dx-lua 圆周运动
- 使用PowerShell下载必应图片
热门文章
- 俄罗斯鲍曼的计算机什么水平,俄罗斯莫斯科鲍曼国立技术大学专家建议在近地轨道上放置一台27吨重的超级计算机...
- LDA主题模型评价指标汇总
- Windows server 2008 基础知识
- 阿里云出现源代码泄露企业 涉及万科等40家企业200余项目
- php文件可以用ps吗,eps是什么文件?怎么打开?用什么软件打开?EPS与PS文件的区别在哪里...
- react+antd+react-to-print实现打印功能,ie浏览器可去掉滚动条
- linux下u盘网卡驱动,通过u盘给linux安装网卡驱动的做法——深圳培训linux
- 智慧社区网格化管理php,智慧社区网格化服务管理信息平台
- 想学点东西,可是心静不下去。纠结…
- python素数生成器_在python中用滤波器和生成器生成无穷素数