1.入门程序
网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本
1.1.环境准备
1.2.log4j.properties
1.3.程序
2.网络爬虫介绍
2.1.什么是网络爬虫?
网络爬虫(Web crawler)也叫做网络机器人,可以代替人们自动地在互联网中进行数据信息的采集与整理。它是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,可以自动采集所有其能够访问到的页面内容,以获取相关数据。
从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。爬虫从一个或若干初始网页的 URL 开始,获得初始网页上的 URL,在抓取网页的过程中,不断从当前页面上抽取新的 URL 放入队列,直到满足系统的一定停止条件。
2.2.为什么学网络爬虫?
- 可以实现搜索引擎
- 大数据时代,可以让我们获取更多的数据源。
- 可以更好地进行搜索引擎优化(SEO)。
- 有利于就业。
3.HttpClient抓取数据
网络爬虫就是用程序帮助我们访问网络上的资源,我们一直以来都是使用 HTTP 协议访问互联网的网页,网络爬虫需要编写程序,在这里使用同样的 HTTP 协议访问网页。
这里我们使用 Java 的 HTTP 协议客户端 HttpClient 这个技术,来实现抓取网页数据。
3.1.GET请求
3.2.带参数的GET请求
3.3.POST请求
3.4.带参数的POST请求
3.5.连接池
3.6.请求参数
4.Jsoup解析数据
我们抓取到页面之后,还需要对页面进行解析。可以使用字符串处理工具解析页面,也可以使用正则表达式,但是这些方法都会带来很大的开发成本,所以我们需要使用一款专门解析 html 页面的技术
4.1.Jsoup介绍
Jsoup的依赖:
4.2.解析URL
Jsoup 可以直接输入 url,它会发起请求并获取数据,封装为 Document 对象
虽然使用 Jsoup 可以替代 HttpClient 直接发起请求解析数据,但是往往不会这样用,因为实际的开发过程中,需要使用到多线程,连接池,代理等等方式,而 jsoup 对这些的支持并不是很好,所以我们一般把 jsoup 仅仅作为 Html解析工具使用
4.3.解析字符串
4.4.解析文件
4.5.使用dom方式遍历文档
元素获取
- 1.根据 id 查询元素 getElementById
- 2.根据标签获取元素 getElementsByTag
- 3.根据 class 获取元素 getElementsByClass
- 4.根据属性获取元素 getElementsByAttribute
元素中获取数据
- 1.从元素中获取 id
- 2.从元素中获取 className
- 3.从元素中获取属性的值 attr
- 4.从元素中获取所有属性 attributes
- 5.从元素中获取文本内容 text