本节使用Jsoup获取网页源码,并且解析数据。
使用JSoup 解析网页,语法使用 JS,css,Jquery 选择器语法,方便易懂
抓取网站:http://www.oschina.net/news/list 开源中国-新闻资讯模块
基本工作:
1.创建好Java工程,包等基本工作。
2.导入Jsoup所依赖的jar包。官网下载地址如下:
http://jsoup.org/packages/jsoup-1.8.1.jar
3.创建JsoupDemo类。(类名自己随意,java基础,没必要多说吧)
核心内容
1.在main函数中使用Jsoup获取网页源码
String url = "http://www.oschina.net/news/list";
Document document = Jsoup.connect(url)
.userAgent("Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0")
.get();

此段代码意思为使用Jsoup链接url地址,并且返回封装该网页的html源码的Document树,userAgent为模拟浏览器头,get为使用get方式提交,关于connect的参数还有很多,请自行查看API学习。
2.分析网页源码
在目标网页上点击右键,火狐有使用FireBug查看元素,谷歌有审查元素,然后可以看到相应的源码和网页的对应情况。如下图(以后都以谷歌浏览器为例):

可以看到我们所需要的数据都在id="RecentNewsList "的div下的class="List"的ul下,并且每一条都对应一个li标签,那么我们只需要找到class=”List”的ul,并且遍历它的li标签就可以获取到所有的信息的源码。代码如下:

Elements elements = document.select("#RecentNewsList .List > li");

这里说一下常用的选择器:
**#RecentNewsList 代表选择id="RecentNewsList "的标签 #为id选择器
.List 代表选择class="List"的标签 .为class选择器
li 表示li标签
‘>’ 只能选择子标签,直接为父元素后代的直系子元素,比如儿子,孙子关系,只能选择儿子。下一级的。**
select中可以写多个,注意使用空格隔开,也可以连续使用select。
3.遍历操作元素集(Elements)

for (Element element : elements) {Elements titleElement = element.select("h2 a");String title = titleElement.text();String link = titleElement.attr("href").trim();Elements dataElement = element.select(".date");Elements autherElement = dataElement.select("a");String auther = autherElement.text();autherElement.remove();String date = dataElement.text();String detail = element.select(".detail").text();System.out.println("链接:        " + "http://www.oschina.net"+link);System.out.println("标题:        " + title);System.out.println("作者:        " + auther);System.out.println("发布时间: " + date);System.out.println("详细信息: " + detail);System.out.println();System.out.println();}

程序运行结果如下:

也可以输出元素集的长度System.out.println(elements.size());

完整代码如下:

package demo;import java.io.IOException;import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;/*** * 使用JSoup 解析网页,语法使用 JS,css,Jquery 选择器语法,方便易懂* * Jsoup教程网:http://www.open-open.com/jsoup/* * @author geekfly* */
public class JsoupDemo {public static void main(String[] args) throws IOException {String url = "http://www.oschina.net/news/list";Document document = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0").get();Elements elements = document.select("#RecentNewsList .List > li");for (Element element : elements) {Elements titleElement = element.select("h2 a");String title = titleElement.text();String link = titleElement.attr("href").trim();Elements dataElement = element.select(".date");Elements autherElement = dataElement.select("a");String auther = autherElement.text();autherElement.remove();String date = dataElement.text();String detail = element.select(".detail").text();System.out.println("链接:        " + "http://www.oschina.net"+link);System.out.println("标题:        " + title);System.out.println("作者:        " + auther);System.out.println("发布时间: " + date);System.out.println("详细信息: " + detail);System.out.println();System.out.println();}System.out.println(elements.size());}
}

Java数据采集--2.使用Jsoup抓取开源中国相关推荐

  1. Python抓取开源中国资讯(使用BeautifulSoup库)

    Python抓取开源中国资讯(使用BeautifulSoup库) 效果 代码 #coding=utf8 import requests import re import xlrd import xlw ...

  2. 基于Java的网络爬虫实现抓取网络小说(一)

    基于Java的网络爬虫实现抓取网络小说(一) 今天开始写点东西,一方面加深印象一方面再学习. 网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它们被广泛用 ...

  3. Jsoup抓取网页数据完成一个简易的Android新闻APP

    前言:作为一个篮球迷,每天必刷NBA新闻.用了那么多新闻APP,就想自己能不能也做个简易的新闻APP.于是便使用Jsoup抓取了虎扑NBA新闻的数据,完成了一个简易的新闻APP.虽然没什么技术含量,但 ...

  4. springboot+jsoup抓取新闻网站信息

    springboot+jsoup抓取新闻网站信息 步骤: 一.导入jar包 二.解析凤凰网新闻 jsoup获取动态生成的js内容 service serviceImpl mapper domian 步 ...

  5. 使用Jsoup抓取京东图书分类页面图书信息

    一.目的: 1.任务 使用 Jsoup抓取京东图书分类页面的图书信息. 抓取目标分类网址例如:https://list.jd.com/list.html?cat=1713,3259,3330 给与的某 ...

  6. android 获取手机a标签页,Android关于对Jsoup抓取a标签和br标签之间的解决办法...

    Jsoup官方给出的文档,链接:http://www.open-open.com/jsoup/ 描述问题: 学校教务处系统中,我想获取所有科目以及对应的成绩,因此我采用了Jsoup抓取 采集成绩:fe ...

  7. 基于Java的阿里妈妈数据抓取技术

    基于Java的阿里妈妈数据抓取技术 前言: 对于需要登录的网站爬虫最大的困难就是需要登录,然后才能获取到数据,如微博,阿里妈妈,webqq等.之前也有看过使用浏览器登录到网站后直接从浏览器中获取coo ...

  8. java 省市县数据_使用Jsoup抓取全国地区数据(省市县镇村)

    最近手头在做一些东西,需要一个全国各地的地域数据,从省市区到县镇乡街道的.各种度娘,各种谷歌,都没找到一个完整的数据.最后功夫不负有心人,总算找到一份相对来说比较完整的数据,但是这里的数据也只是精确到 ...

  9. 几十行代码实现Java爬虫,结合jsoup爬取网名昵称

    原文链接:点击打开链接 crawler4j是一个开源爬虫框架(https://github.com/yasserg/crawler4j), 我们可以使用它进行爬虫.以爬取 http://www.nib ...

最新文章

  1. BBI综述:在微生物组研究中使用宏转录组
  2. 编译phonetisaurus时configure找不到openfst的问题解决
  3. 脑机接口新应用,利用深度学习对无声语音信号解码
  4. Java连接数据库(2)
  5. Typeface 字体样式
  6. Teams App抽奖机器人 - 基础架构
  7. 心情沮丧的时候可以这样做
  8. POI--HSSFCellStyle类
  9. anaconda新建python文件_PyCharm+cmd中使用Anaconda 与 新建Python环境(Windows)
  10. 欢迎来怼--第二十九次Scrum会议
  11. poj2976(二分搜索,最大化平均值)
  12. matlab算sma,SMA_移动平均及双均线模型
  13. 冲突域和广播域的区分
  14. 24位掩码和30个掩码_高级ds位掩码和dp的问题
  15. 乐蜂网八周年店庆有感
  16. 聚沙成塔,浙江形成1000 万千瓦“虚拟电厂”
  17. iOS开发之网络监听(一)Reachability
  18. java数组 初始化_用Java初始化数组
  19. JavaScript(Dom对象的操作)
  20. openjudge 丛林中的路

热门文章

  1. LiveGBS流媒体平台GB/T28181功能-摄像头报警告警预案触发图片截取视频录制海康大华华为宇视等摄像头报警触发截图录像
  2. 社保卡应用名称、标识符及文件系统的介绍
  3. 【RFID】射频滤波器的设计
  4. 教你用Python写一个聊天机器人
  5. 下载地址及Mac安装方法
  6. 学习Linux命令(3)
  7. 计算机基础知识宣讲心得体会,有关计算机基础的心得体会
  8. leetcode系列-746.使用最小花费爬楼梯
  9. 浅谈技术难度与公司收益
  10. MFC 利用 Codejock XtremeToolkitPro 换肤