Java爬虫学习(二)
文章目录
前言
记录学习内容,由领航学长讲解爬虫知识
一、HTTP协议(HyperText Transfer Protocol,超文本传输协议)
介绍
最初是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。用于从WWW服务器传输超文本到本地浏览器的传送协议。
HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准,通常使用TCP协议。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像,视频等。
内容
- 请求网址(URL)
- 请求方法(Get, Post…)
- 请求头, 请求体
- 响应头,响应体
- 响应码:
1xx消息——请求已被服务器接收,继续处理
2xx成功——成功响应,常见的有200
3xx重定向——常用于页面跳转
4xx请求错误——请求含有有错误,例如404表示页面不存在
5xx服务器错误——服务器发生错误,服务器本身的问题
二、网页基本知识
介绍
用Html编写,定义网页的结构,由文字,图片,视频,音频…组成,用标签进行包装。本质上是一个文本资源文件。CSS进行渲染,JS进行交互。
三、爬虫基本原理
介绍
程序模拟浏览器, 发送http请求, 获取响应数据,按照需求进行操作存储等等。
环境配置
第三方库:
- Apache HttpClient » 4.5.13
- WebMagic Core » 0.7.4
- JSoup Java HTML Parser » 1.13.1
- JsoupXpath » 2.4.3
- Selenium Java » 3.141.59
Maven仓库的地址:http://mvnrepository.com/
Maven安装
四、实战
具体代码
具体可以看我的博客:Java爬虫学习(一)
完整代码:https://gitee.com/abab45152/Spider
五、补充
Robots协议
比较正规的网站,根目录下的robots.txt文件,规定了爬虫能访问,不能访问的区域。是一种道德约束。
我们平时训练,仅供学习交流!
例如淘宝网:
动态渲染页面的爬取
动态渲染的页面其实包括两类:①ajax请求②直接写在html中的js代码,例如可以是一些计算值
第一类:
- 分析ajax请求(难度较大,有时候还需要你学会调试前端js代码)
- 使用htmlunit这个第三方库,利用其提供的方法,可以直接加载js渲染后的html页面!
- 使用selenium库,几乎是万能的方法,直接操作浏览器,自动化太强了。
第二类:
自己模拟计算结果,它是怎么加数据的,程序就怎么加
第一类的2,3
Cookie的利用
例如我想获取教务处的成绩信息,则先需要模拟登录。利用登录后的结果(本地有Cookie),来进一步获取信息。