WebCrawler - HttpClient&Jsoup

1.入门程序

网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本

1.1.环境准备

WebCrawler - HttpClient&Jsoup_第1张图片

1.2.log4j.properties

WebCrawler - HttpClient&Jsoup_第2张图片

1.3.程序

WebCrawler - HttpClient&Jsoup_第3张图片

2.网络爬虫介绍

2.1.什么是网络爬虫?

网络爬虫(Web crawler)也叫做网络机器人,可以代替人们自动地在互联网中进行数据信息的采集与整理。它是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,可以自动采集所有其能够访问到的页面内容,以获取相关数据。

从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。爬虫从一个或若干初始网页的 URL 开始,获得初始网页上的 URL,在抓取网页的过程中,不断从当前页面上抽取新的 URL 放入队列,直到满足系统的一定停止条件。

2.2.为什么学网络爬虫?

  1. 可以实现搜索引擎
  2. 大数据时代,可以让我们获取更多的数据源。
  3. 可以更好地进行搜索引擎优化(SEO)。
  4. 有利于就业。

3.HttpClient抓取数据

网络爬虫就是用程序帮助我们访问网络上的资源,我们一直以来都是使用 HTTP 协议访问互联网的网页,网络爬虫需要编写程序,在这里使用同样的 HTTP 协议访问网页。

这里我们使用 Java 的 HTTP 协议客户端 HttpClient 这个技术,来实现抓取网页数据。

3.1.GET请求

WebCrawler - HttpClient&Jsoup_第4张图片
WebCrawler - HttpClient&Jsoup_第5张图片

3.2.带参数的GET请求

WebCrawler - HttpClient&Jsoup_第6张图片

3.3.POST请求

在这里插入图片描述

3.4.带参数的POST请求

WebCrawler - HttpClient&Jsoup_第7张图片

3.5.连接池

WebCrawler - HttpClient&Jsoup_第8张图片WebCrawler - HttpClient&Jsoup_第9张图片

3.6.请求参数

WebCrawler - HttpClient&Jsoup_第10张图片

4.Jsoup解析数据

我们抓取到页面之后,还需要对页面进行解析。可以使用字符串处理工具解析页面,也可以使用正则表达式,但是这些方法都会带来很大的开发成本,所以我们需要使用一款专门解析 html 页面的技术

4.1.Jsoup介绍

WebCrawler - HttpClient&Jsoup_第11张图片
Jsoup的依赖:
WebCrawler - HttpClient&Jsoup_第12张图片

4.2.解析URL

Jsoup 可以直接输入 url,它会发起请求并获取数据,封装为 Document 对象
WebCrawler - HttpClient&Jsoup_第13张图片

虽然使用 Jsoup 可以替代 HttpClient 直接发起请求解析数据,但是往往不会这样用,因为实际的开发过程中,需要使用到多线程,连接池,代理等等方式,而 jsoup 对这些的支持并不是很好,所以我们一般把 jsoup 仅仅作为 Html解析工具使用

4.3.解析字符串

WebCrawler - HttpClient&Jsoup_第14张图片

4.4.解析文件

WebCrawler - HttpClient&Jsoup_第15张图片

4.5.使用dom方式遍历文档

元素获取

  • 1.根据 id 查询元素 getElementById
  • 2.根据标签获取元素 getElementsByTag
  • 3.根据 class 获取元素 getElementsByClass
  • 4.根据属性获取元素 getElementsByAttribute
    WebCrawler - HttpClient&Jsoup_第16张图片

元素中获取数据

  • 1.从元素中获取 id
  • 2.从元素中获取 className
  • 3.从元素中获取属性的值 attr
  • 4.从元素中获取所有属性 attributes
  • 5.从元素中获取文本内容 text
    WebCrawler - HttpClient&Jsoup_第17张图片

4.6.Selector选择器概述

WebCrawler - HttpClient&Jsoup_第18张图片

4.7.Selector选择器组合使用

WebCrawler - HttpClient&Jsoup_第19张图片

你可能感兴趣的:(工具及中间件)