jsoup抓取网页内容
java项目有时候我们需要别人网页上的数据,怎么办?我们可以借助第三方架包jsou来实现,jsoup的中文文档,那怎么具体的实现呢?那就跟我一步一步来吧
最先肯定是要准备好这个第三方架包啦,下载地址,得到这个jar后在需要怎么做呢?别急,我们慢慢来
将jsoup.jar拷贝到项目的WebRoot—>WEB-INF—>lib文件夹
之后我们需要将这个架包引入一下哦!
右键项目选择build path—>configure build path—>libraries—>add jars—>找到刚刚放入的目录下的jsoup



准备工作完成了,接下来就是我们的编码部分了,加油哦!
既然是抓取网页的内容那肯定首要有被抓的网站的地址,这里就以我其中一篇博客为准吧http://www.cnblogs.com/luhan/p/5953387.html
这个是我这篇文章的截图,比如我要抓取Android零碎知识点,之后会一直更新哦这一段文字
//获取整个网站的根节点,也就是html开头部分一直到结束,这里get方式,post方式是一样的
Document document = Jsoup.connect(url).get();
//输出一下我们会看到整个字符串如下
System.out.println(document);
这里只是截图了一部分

我们会看到我们需要抓的那一段文字在a标签包裹在,而且还有一个重要的就是id=cb_post_title_url,看过文档的应该知道,jsoup里面有getElementById这个方法,其实跟js里面获取元素是一样的,这里我们就可以用
getElementById的方法来获取这个a标签,获取到后我们就可以获取里面的内容了不是吗?而正好jsou也给我们提供了这样的一个方法text()方法,就是获取标签的文本内容,记得是文本而不是html形式的
如下我们通过getElementById这个方法来获取到我们想要的a标签
Element a = document.getElementById("cb_post_title_url");
这时候我们输出的内容如下
System.out.println(a.text());

是不是得到了我们想要的了?当然啦,这只是jsoup的最简单的抓取而已,如果需要获取到的是个列表形式的啊,jsoup也一样可以的,我们都知道id是唯一的,不可以重复的,所以我们通过id获取到的只能是一行标签
但是一般列表比如ul-li我们就可以用getElementsByTag这个方法,通过标签名获取,然后再通过for循环的方式一个一个的去抓就完事啦,接下来附上代码
package com.luhan.text; import java.io.IOException; import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element; public class Text {
private static final String url = "http://www.cnblogs.com/luhan/p/5953387.html"; public static void main(String[] args) {
try {
//获取整个网站的根节点,也就是html开头部分一直到结束
Document document = Jsoup.connect(url).post();
Element a = document.getElementById("cb_post_title_url");
System.out.println(a.text());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
jsoup里面的方法我就不一一介绍啦,不懂的小伙伴可以去看jsoup的中文文档哦,我就说说比较重要的方法吧
Jsoup.connect(url).post();获取网页的跟目录
getElementById通过id来获取
getElementsByClass通过class来获取
getElementsByTag通过标签名称来获取
text()获取标签的文本,再次强调一下是文本
html()获取标签里面的所有字符串包括html标签
attr(attributeKey)获取属性里面的值,参数是属性名称
注意
jsoup获取网页的根目录可能跟源代码不一样,所以需要小伙伴们细心哦
至此jsoup抓取网页的数据就告一段落啦,说的不太好,欢迎大家多指点,这个我用java控制台的,javaweb以及Android用法是一样的,先要导入框架,然后调用方法就ok了
jsoup抓取网页内容的更多相关文章
- 使用Jsoup函数包抓取网页内容
之前写过一篇用Java抓取网页内容的文章,当时是用url.openStream()函数创建一个流,然后用BufferedReader把这个inputstream读取进来.抓取的结果是一整个字符串.如果 ...
- paip.抓取网页内容--java php python
paip.抓取网页内容--java php python.txt 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog ...
- Asp.Net 之 抓取网页内容
一.获取网页内容——html ASP.NET 中抓取网页内容是非常方便的,而其中更是解决了 ASP 中困扰我们的编码问题. 需要三个类:WebRequest.WebResponse.StreamRea ...
- ASP.NET抓取网页内容的实现方法
这篇文章主要介绍了ASP.NET抓取网页内容的实现方法,涉及使用HttpWebRequest及WebResponse抓取网页内容的技巧,需要的朋友可以参考下 一.ASP.NET 使用HttpWebRe ...
- ASP.NET抓取网页内容
原文:ASP.NET抓取网页内容 一.ASP.NET 使用HttpWebRequest抓取网页内容 这种方式抓取某些页面会失败 不过,有时候我们会发现,这个程序在抓取某些页面时,是获不到所需的内容的, ...
- c#抓取网页内容乱码的解决方案
写过爬虫的同学都知道,这是个很常见的问题了,一般处理思路是: 使用HttpWebRequest发送请求,HttpWebResponse来接收,判断HttpWebResponse中”Content-Ty ...
- C# 抓取网页内容的方法
1.抓取一般内容 需要三个类:WebRequest.WebResponse.StreamReader 所需命名空间:System.Net.System.IO 核心代码: view plaincopy ...
- ASP.NET 抓取网页内容
(转)ASP.NET 抓取网页内容 ASP.NET 抓取网页内容-文字 ASP.NET 中抓取网页内容是非常方便的,而其中更是解决了 ASP 中困扰我们的编码问题. 需要三个类:WebRequest. ...
- 爬虫学习一系列:urllib2抓取网页内容
爬虫学习一系列:urllib2抓取网页内容 所谓网页抓取,就是把URL地址中指定的网络资源从网络中读取出来,保存到本地.我们平时在浏览器中通过网址浏览网页,只不过我们看到的是解析过的页面效果,而通过程 ...
随机推荐
- Java 调用R 方法
JAVA 调用 R 语言 1 简介 R是统计计算的强大工具,而JAVA是做应用系统的主流语言,两者天然具有整合的需要.关于整合,一方面,R中可以创建JAVA对象调用JAVA方法,另一方面, ...
- 【数据挖掘】分类之Naïve Bayes(转载)
[数据挖掘]分类之Naïve Bayes 1.算法简介 朴素贝叶斯(Naive Bayes)是监督学习的一种常用算法,易于实现,没有迭代,并有坚实的数学理论(即贝叶斯定理)作为支撑. 本文以拼写检查作 ...
- linux下apache+php搭建配置记录
第1章 环境说明1.1 系统说明Centos 6.2 (最小化安装)1.2 软件说明httpd-2.4.2.tar.gzapr-util-1.4.1.tar.gzapr-1.4.6.tar.gzpc ...
- Mongodb搭建
1.配置yum源,创建/etc/yum.repos.d/mongodb-org-3.2.repo文件,添加如下文件内容: [mongodb-org-3.2] name=MongoDB Reposito ...
- justify-content 定义子元素在父元素水平位置排列的顺序
justify-content 定义子元素在父元素水平位置排列的顺序,需要和display:flex使用才会生效. 有五个属性: 1.flex-start(默认值) 左对齐 2.flex-end 右 ...
- python学习 02 元组
元组和列表除了能不能修改外 定义单一元组还需要加逗号
- Codeforces Round #392 (Div. 2) F. Geometrical Progression
原题地址:http://codeforces.com/contest/758/problem/F F. Geometrical Progression time limit per test 4 se ...
- DBCP组件概述
许多Apache的项目都支持与关系型数据库进行交互.为每个用户都创建一个连接是一项非常耗时的工作(通常情况下,需要花费几秒中),而为了执行数据库的事务处理可能还需要花费几毫秒.对于一个对外公开访问的互 ...
- Python小白的发展之路之Python基础(三)【函数简介】
目录: 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 4.嵌套函数 5.递归 6.匿名函数 7.函数式编程介绍 8.高阶函数 9.内置函数 1. 函数基本语法及特性 首先我们明确函数是 ...
- linux集群管理
本文以ubuntu-16.04.3-server-amd64为例,搭建服务器集群.同样是依托于虚拟机. 创建第一个节点 创建新的虚拟机参见:创建新的虚拟机,创建之后,编辑虚拟机,选择Ubuntu镜像, ...