目录

  • 一、为什么要学爬虫?
  • 二、爬虫为什么用Python?
  • 三、有爬虫就有反爬虫
  • 四、爬虫的流程图
  • 五、爬虫相关技术
  • 1、HTML
  • 2、CSS
  • 3、URL(Uniform Resource Location)
  • 4、HTTP和HTTPS
  • 5、爬虫常见请求方式
  • 6、常见请求头参数
  • 7、常见状态码
  • 8、AJAX


一、为什么要学爬虫?

注意:爬虫学得好,牢饭吃得早 --君子爱财取之有道

爬虫可以获取一些数据,在工作中像数据分析、机器学习会拿一定的数据做行业分析等。

二、爬虫为什么用Python?

除了Python,像Java,C等语言都可以写爬虫,因为Python的第三方类库比较齐全,工欲善其事,必先利其器,能用最少的时间发挥最大的价值,就是用Python的原因。

三、有爬虫就有反爬虫

因为爬虫可能会造成服务器拥堵,甚至瘫痪,所以还是要遵守君子协定,在网站允许你爬的范围内展开爬取数据。

四、爬虫的流程图

class python td 爬虫 python爬虫 科普_ajax

五、爬虫相关技术

1、HTML

class python td 爬虫 python爬虫 科普_ajax_02

<!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

class python td 爬虫 python爬虫 科普_class python td 爬虫_03

<!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传送的数据量较大,一般被默认为不受限制

class python td 爬虫 python爬虫 科普_ajax_04

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)如果需要更新内容,必须重载整个页面。

class python td 爬虫 python爬虫 科普_ajax_05