大数据应用开发总结笔记

本文是关于旅游网站大数据分析的实训总结,涵盖了数据抓取、数据清理、数据存储(使用Hbase)、数据分析以及数据可视化的过程。通过Jsoup进行网页抓取,使用Hbase进行数据存储,并介绍了如何配置Hbase的MapReduce进行数据分析。
摘要由CSDN通过智能技术生成

实训项目之旅游网站大数据分析

数据抓取

Java 中支持的爬虫框架有很多,比如 WebMagic 、 Spider 、 Jsoup 等。本次使用 Jsoup 来实现一个简单的爬虫程序。
Jsoup 拥有十分方便的 api 来处理 html 文档,比如参考了 DOM 对象的文档遍历方法,参考了 CSS 选择器的用法等等,因此我们可以使用 Jsoup 快速地掌握爬取页面数据的技巧。

Jsoup 的使用

Jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL地址、HTML文本内容。它提供了一套非常省力的API,可通过 DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

主要功能如下:

  1. 从一个URL 件或字符串中解析 HTML;
  2. 使用 DOM 或 CSS 选择器来查找、取出数据;
  3. 可操作 HTML 元素、属性、文本;

使用 jsoup 比较简单,我们可以直接获取网页的数据

Document root_document =  Jsoup.parse(new URL("https://www.baidu.com"), 5000);
System.out.println(root_document.toString());

执行这段代码就能输出百度首页HTML文档的信息
jsoup可以从包括字符串URL地址以及本地文件来加载HTML文档,并生成Document对象实例。

当然,Jsoup不仅仅能获取网站的信息,也能通过本地文件和字符串来加载HTML文档

// 直接从字符串中输入 HTML 文档
String html = "<html><head><title> Educoder实训平台 </title></head>"
  + "<body><p> 这里是 jsoup 项目的相关文章 </p></body></html>";
Document doc = Jsoup.parse(html);
// 从 URL 直接加载 HTML 文档
Document doc = Jsoup.connect("http://www.educoder.net/").get();
String title = doc.title();
Document doc = Jsoup.connect("http://www.educoder.net/")
  .data("query", "Java")   // 请求参数
  .userAgent("I ’ m jsoup") // 设置 User-Agent
  .cookie("auth", "token") // 设置 cookie
  .timeout(3000)           // 设置连接超时时间
  .post();                 // 使用 POST 方法访问 URL
// 从文件中加载 HTML 文档
File input = new File("D:/test.html");
Document doc = Jsoup.parse(input,"UTF-8","http://www.educoder.net/");

使用DOM方法遍历一个文档
列出几个常用方法:

查找元素:
    getElementById(String id)
    getElementsByTag(String tag)
    getElementsByClass(String className)
    Graph: parent(), children(), child(int index)
元素数据: 
    attr(String key),text(),html()

使用说明:

Document doc = Jsoup.parse("http://www.example.com/");
Element content = doc.getElementById("content");
Elements links = content.getElementsByTag("a");
for (Element link : links) {
   
     String linkHref=link.attr("href");
     String linkText=link.text();
}

使用CSS语法来查找元素
jsoup elements对象支持类似于CSS(或jquery)的选择器语法,来实现非常强大和灵活的查找功能。可以使用Element.select(String selector)和 Elements.select(String selector)方法实现:

Document doc = Jsoup.parse("http://www.example.com/");
//带有href属性的a元素
Elements links = doc.select("a[href]");
//扩展名为.png的图片
Elements pngs = doc.select("img[src$=.png]");
//class等于masthead的div标签
Element masthead = doc.select("div.masthead").first();
//在div元素之后的p元素
Elements resultLinks = doc.select("div > p");

在解析获得一个Document实例对象,并查找到一些元素之后,取得在这些元素中的数据。

从元素中抽取属性,文本和HTML
Element.attr(String key):取得一个属性的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值