目录
- 一、为什么要学爬虫?
- 二、爬虫为什么用Python?
- 三、有爬虫就有反爬虫
- 四、爬虫的流程图
- 五、爬虫相关技术
- 1、HTML
- 2、CSS
- 3、URL(Uniform Resource Location)
- 4、HTTP和HTTPS
- 5、爬虫常见请求方式
- 6、常见请求头参数
- 7、常见状态码
- 8、AJAX
一、为什么要学爬虫?
注意:爬虫学得好,牢饭吃得早 --君子爱财取之有道
爬虫可以获取一些数据,在工作中像数据分析、机器学习会拿一定的数据做行业分析等。
二、爬虫为什么用Python?
除了Python,像Java,C等语言都可以写爬虫,因为Python的第三方类库比较齐全,工欲善其事,必先利其器,能用最少的时间发挥最大的价值,就是用Python的原因。
三、有爬虫就有反爬虫
因为爬虫可能会造成服务器拥堵,甚至瘫痪,所以还是要遵守君子协定,在网站允许你爬的范围内展开爬取数据。
四、爬虫的流程图
五、爬虫相关技术
1、HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>标题</title>
</head>
<body>
<h1>我的第一个标题</h1>
<h6>我的第六个标题</h6>
<p>我的第一个段落。</p>
<b>加粗文本</b>
<i>斜体文本</i>
<a href="">大数据博客超链接</a>
<br>
<img border="30" src="https://s2.51cto.com/images/blog/202309/19222557_6509af759bd4e14547.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=" alt="图片" width="32" height="32">
</body>
</html>
2、CSS
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>标题</title>
<style>
body {
background-color:#d0e4fe;
}
h1 {
color:orange;
text-align:center;
}
p {
font-family:"Times New Roman";
font-size:30px;
}
</style>
</head>
<body>
<h1>CSS 实例!</h1>
<p>这是一个段落。</p>
</body>
</html>
3、URL(Uniform Resource Location)
- 解释:
统一资源定位符”。通俗地说,URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
- URL组成:
第1部分是协议(或称为服务方式);
第2部分是存有该资源的主机IP地址(有时也包括端口号);
第3部分是主机资源的具体地址。,如目录和文件名等。
注意:
第1部分和第2部分之间用“://”符号隔开,第2部分和第3部分用“/”符号隔开。第1部分和第2部分是不可缺少的,第3部分有时可以省略。
4、HTTP和HTTPS
定义:
HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。TCP 协议 80 端口。
HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。 TCP 协议443端口。
HTTPS的工作流程
1、TCP 三次同步握手
2、客户端验证服务器数字证书
3、DH 算法协商对称加密算法的密钥、hash 算法的密钥
4、SSL 安全加密隧道协商完成
5、网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。
区别:
HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
5、爬虫常见请求方式
- get请求
GET是默认的HTTP请求方法
发送一个请求常用来获取服务器资源
GET请求把参数包含在URL中,将请求信息放在URL后面,POST请求通过request body传递参数,将请求信息放置在报文体中。
get安全性非常低
get传送的数据量较小,不能大于2KB
- post请求
向URL指定的资源提交数据或附加新的数据post安全性较高,post传递数据比较隐私post传送的数据量较大,一般被默认为不受限制
6、常见请求头参数
Request URL:
请求地址Request Method:
请求方式Status Code:
状态码Remote Address:
IP地址Cookie:
一个 Web 站点可能会为每一个访问者产生一个唯一的ID, 然后以 Cookie 文件的形式保存在每个用户的机器上User-Agent:
浏览器Referer:
跳转的地址
7、常见状态码
200 操作执行成功。
298 部分操作执行成功。
400 请求报文格式错误。(包括上传时,上传表单格式错误;URL触发图片处理时,处理参数错误;
401 认证授权失败。(包括密钥信息不正确;数字签名错误;授权已超时)
404 资源不存在。(包括空间资源不存在;镜像源资源不存在)
405 请求方式错误。(主要指非预期的请求方式)
406 上传的数据 CRC32 校验错误。
419 用户账号被冻结。
478 镜像回源失败。(主要指镜像源服务器出现异常)
503 服务端不可用。
504 服务端操作超时。
579 上传成功但是回调失败。(包括业务服务器异常;七牛服务器异常;服务器间网络异常)
599 服务端操作失败。
608 资源内容被修改。
612 指定资源不存在或已被删除。
614 目标资源已存在。
630 已创建的空间数量达到上限,无法创建新空间。
631 指定空间不存在。
640 调用列举资源(list)接口时,指定非法的marker参数。
701 在断点续上传过程中,后续上传接收地址不正确或ctx信息已过期。
8、AJAX
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术
- AJAX是什么?
AJAX = Asynchronous JavaScript and XML.AJAX 是一种用于创建快速动态网页的技术。AJAX 通过在后台与服务器进行少量数据交换,使网页实现异步更新。这意味着可以在不重载整个页面的情况下,对网页的某些部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个页面。