python 爬虫100篇-Python爬虫专栏

【python】爬虫基础:爬虫用途、爬虫基本原理以及HTTP 基

2019-08-13  本文已影响68人  Alcazar
初识爬虫

【👀 简介】:网络爬虫,是一种按照一定的规则,自动地抓取万维网信息(数据)的程序或者脚本。 --摘自【百度百科】

【🍀通俗的说】:网络爬虫就是一个程序,通过模拟人类访问互联网的形式,不停地从网络上抓取我们需要的数据。我们可以定制各种各样的爬虫,来满足不同的需求,如果法律允许,我们可以采集在网页上看到的、任何你想要获得的数据。

【好吧,一句话来讲】:根据用户的需要,从网上抓取数据。(不需要用户去操纵浏览器获取

🐾爬虫用途

【背景】:我们当前正处于人工智能和大数据时代,爬虫除了能够获取互联网的数据以外还能够帮我们完成很多繁琐的手动操作,这些操作不仅仅包括获取数据,还能够添加数据。用途有以下几种:

🏛:聚合服务(去哪儿网,美团 )
🌰:管理多个平台的多个账户(如各个电商平台的账号)
🌰:微信聊天机器人
🌰:新闻推荐(今日头条)
💗:垂直领域的服务(💗💗大众点评)
🌰:预测和判断(医疗领域)
🚝:抢票神器(🚝学会爬虫,永远不为出行担忧~)
🌰:投票神器(利用爬虫刷票等等)


🐾 爬虫基本原理

【介绍】:爬虫模拟用户在浏览器或者App应用上的操作,把操作的过程、实现自动化的程序
步骤如下:


🐾HTTP 基本原理

既然已经了解了爬虫是不停地从网络上抓取我们需要的数据。那么我们就应该明白网络以及数据传输等方面的知识,下面,将挑重点介绍。

URI(Uniform Resource Identifier)

统一资源定位符,用来唯一指定网络上的一个资源。

HTTP 和 HTTPS

🙈HTTP 超文本传输协议
【介绍】:超文本传输协议,用于从网络传输超文本数据的协议,它能够保证高效而准确的传输超文本文档,目前广泛使用的是HTTP1.1版本。

😺HTTPD协议
【介绍】:是HTTP协议的安全版本。在HTTP下加入SSL层,简称为HTTPS。HTTPS的安全基础是SSL,通过它的传输内容都会经过SSL加密。主要功能有以下两点:

🐾HTTP请求过程

HTTP请求,由客户端向服务器端发出,主要是以下四个部分:

请求方法介绍

请求方法重点掌握“增”、“删”、“改”、“查”

方法🐾 描述
GET 请求页面,返回页面内容。是向服务器要数据的。
HEAD 类似GET请求,只是返回的只有Header中的内容。
POST 用于向服务器发送数据
PUT 用于对服务器的数据进行修改
DELETE 删除服务器上指定内容
CONNECT 将服务器作为跳板,访问其他服务器页面
OPTIONS 请求web服务器告知其支持的各种功能
🐾请求头

请求头里存放了服务器使用的附加信息,例如Cookie、User-Agent等。常见信息见下表:

请求头 作用
Accept: 请求报头域,用于指定客户端可以接收哪些类型的信息。
Accept-Lanaguage: 客户端可以接收的语言类型。
Accept-Encoding: 指定客户端可接受的内容编码。
Host: 指定请求资源的主机IP和端口号。
Cookie: 存储在本地的数据。维持当前访问会话。
Referer: 用来标识请求是从哪个页面发过来的。
User-Agent: 用来使服务器端识别客户端使用的操作系统、浏览器等。
Content-Type: 表示请求中的媒体类型信息。常见的content-type类型如下表
请求体

【一般情况】使用post来请求数据;对于get请求,请求体为空。
【注意】:Get请求每次提交的数据,最多只能有1024字节。

Content-Type 和 POST 提交数据方式的关系,如下表。

content-type类型 提交数据的方式
application/x-www-form-urlencoded 表单数据
multipart/form-data 文件上传
application/json 序列化的JSON数据
text/xml xml数据。

【注释】:在爬虫应用中,如果要构造 POST 请求,需要使用正确的 Content-Type,并了解各种请求库的各个参数设置时使用的是哪种 Content-Type, 不然可能会导致 POST 提交后无法正常响应。


🐾响应

响应由服务器端返回给客户端,分为三个部分:响应状态码、响应头、响应体

响应状态码

【解释】:代表服务器处理请求的状态。具体可见下表:

响应状态码 状态 详解
200 OK(成功) 请求成功
201 Created(已创建) 请求成功,并且创建了一个新资源
202 Accepted(已接受) 请求已经收到,但仍在处理中,将异步处理
204 No Content(没有内容) 请求成功处理,但是返回响应没有数据
400 Bad Request(坏请求) 请求无效或不一致
401 Unauthorized(未授权) 请求中未包含身份验证信息或提供的凭据无效
403 Forbidden(禁止) 在请求中发送的身份验证凭据,无权访问目标
404 Not Found(未找到) URL对应的资源不存在
405 Method Not Allowed(不允许使用的方法) 指定资源不支持请求使用的方法
500 Internal Server Error(内部服务器错误) 处理请求的过程中,发生了意外错误

【补充】:通常情况下,2xx:表示成功;3xx:表示重定向;4xx:表示客户端错误;5xx:表示服务器错误。具体关于响应状态码可参考:https://www.cnblogs.com/fwl8888/p/9388414.html

🐾 响应头

【解释】:包含了服务器对请求的响应信息。

🐾 响应体

响应的正文数据都存储于响应体中,Preview下的内容即为响应体的内容。


爬虫基础--响应体

【技能提高】:通过爬虫爬取响应体,得到网页的源代码、 JSON数据等, 然后从中做相应内容的提取。

上一篇下一篇

猜你喜欢

热点阅读