想要学习爬虫一定要知道爬虫最基础的相关知识储备,从爬虫是什么?爬虫能干什么?爬虫是怎么运行的?等等一起来学习,希望有给小白提供到学习上的帮助。

  • 爬虫定义、分类和流程
  • http和https

爬虫定义

网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。爬虫就是模拟浏览器的行为,越像越好,越像就越不容易被发现。原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。

爬虫的分类

  • 通用爬虫:通常指搜索引擎的爬虫
  • 聚焦爬虫:针对特定网站的爬虫

爬虫的用途

  • 下载vip音乐
  • 下载vip电影
  • 12306抢票
  • 网站自动投票
  • 短信轰炸
    等等

爬虫的流程

  1. 向起始url发送请求,并获取响应
  2. 对响应进行提取
  3. 如果提取url,则继续发送请求获取响应
  4. 如果提取数据,则将数据进行保存

robots 协议

Robots 协议:网站通过 Robots 协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,但它仅仅是道德层面上的约束 例如:淘宝的 robots 协议

HTTP概念

HTTP(超文本传输协议)是应用层上的一种客户端/服务端模型的通信协议,它由请求和响应构成,且是无状态的。

协议:协议规定了通信双方必须遵守的数据传输格式,这样通信双方按照约定的格式才能准确的通信。

无状态:无状态是指两次谅解通信之间是没有任何联系的,每次都是一个新的连接,服务端不会记录前后的请求信息。

HTTP 请求流程

  1. 浏览器通过域名解析服务器(DNS)获取IP地址
  2. 浏览器先向 IP 发起请求,并获取相应
  3. 在返回的响应内容(html)中,会带有 css、js、图片等 url 地址,以及 ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应
  4. 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css 等内容会修改页面的内容,js也可以重新发送请求,获取响应
  5. 从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改————这个过程叫做浏览器的渲染

五层网络模型

HTTP协议结构图

网络模型对应关系

  1. HTTP、RTSP、FTP -------> 应用层
  2. TCP、UDP -------> 传输层
  3. IP -------> 网络层
  4. 数据链路 -------> 数据链路层
  5. 物理介质 -------> 物理层

url 地址格式

格式说明: scheme://host[:port]/path/…/[?query-string][#anchor]

  1. scheme:协议(例如:http, https, ftp)
  2. host:服务器的 IP 地址或者域名
  3. port:服务器的端口(如果是走协议默认端口,缺省端口80)
  4. path:访问资源的路径
  5. query-string:参数,发送给 http 服务器的数据
  6. anchor:锚(跳转到网页的指定锚点位置)

HTTP 请求

请求格式

请求方式

  • 根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
  • HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。
  • HTTP1.1 新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
请求方式 描述
GET 请求指定的页面信息,并返回实体主体。
HEAD 类似于 get 请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。
POST 请求可能会导致新的资源的建立和/或已有资源的修改。
PUT 从客户端向服务器传送的数据取代指定的文档的内容
DELETE 请求服务器删除指定的页面。
CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS 允许客户端查看服务器的性能。
TRACE 回显服务器收到的请求,主要用于测试或诊断。

常见请求头

请求头 作用
Cookie Cookie
User-Agent 浏览器名称
Referer 页面跳转处
Host 主机和端口号
Connection 链接类型
Upgrade-Insecure-Requests 升级为 HTTPS 请求
Accept 传输文件类型
Accept-Encoding 文件编解码格式
x-requested-with : XMLHttpRequest ajax 请求

HTTP响应格式

HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行(回车符 + 换行符)和响应正文。

响应头

响应头 作用
Location 这个头配合 302 状态码使用,告诉用户端找谁
Set-Cookie 设置和页面关联的 Cookie
Content-Type 服务器通过这个头,回送数据的类型
Server 服务器通过这个头,告诉浏览器服务器的类型
Content-Length 服务器通过这个头,告诉浏览器回送数据的长度
Connection 服务器通过这个头,响应完是保持链接还是关闭链接

HTTP 状态码

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。HTTP 状态码的英文为 HTTP Status Code。HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP 状态码共分为 5 种类型

分类 分类描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误

常见的 HTTP 状态码

  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转移到其它 URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误

HTTPS

  • HTTP + SSL (安全套接字层),即带有安全套接字层的超本文传输协议
  • 默认端口号:443
  • HTTPS 作用:在传输过程中对数据进行加密,防止中间路由器、交换机等中间的路由设备对数据进行篡改。

当前形式
注意:目前 HTTPS 是未来主流,iOS 客户端,android 客户端的接口提供都需要 HTTPS 接口支持。

如果有一天,当你遇到一个问题的时候,你能想出多种解决方法,并且迅速而准确的选出最有效率的那一个,就证明你已经对这门语言很精通了。
学习交流,有问题随时解答,一起优秀打卡学习,qq:943192807

想要学习Python爬虫的你,真的了解爬虫最基础的知识储备吗?相关推荐

  1. 想学python编程-想学Python编程?你真的适合吗?

    原标题:想学Python编程?你真的适合吗? 有的人说我想学什么.我想干什么,很多时候都是头脑发热,单凭一腔热血,可是这样的路即便走上去你又能坚持多久呢?所以,每每有人问我学Python编程怎么样,我 ...

  2. 哪个专业学python语言_想学Python编程?你真的适合吗?

    原标题:想学Python编程?你真的适合吗? 有的人说我想学什么.我想干什么,很多时候都是头脑发热,单凭一腔热血,可是这样的路即便走上去你又能坚持多久呢?所以,每每有人问我学Python编程怎么样,我 ...

  3. 零基础自学python看什么书-零基础想要学习Python编程 ,不知道看哪本书?

    前言 Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取! 想要学习Python编程不知道 ...

  4. 零基础学python用哪本书好-零基础想要学习Python编程 ,不知道看哪本书?

    前言 Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取! 想要学习Python编程不知道 ...

  5. 想要学习Python爬虫,看这几本书就够了

    网页抓取就是从网站中提取数据,因为有很多网站,已经有很多开发工具可以用来浏览网站(web爬行)寻找特定的数据片段并自动收集它们(web抓取).收集到的数据大多是非结构化的HTML形式,之后再将其转化为 ...

  6. python编程培训多少钱-想要学习Python,武汉Python编程培训费用是多少?

    人工智能的火热,促使了越来越多的人学习Python,为了高效.快速的学习,大多数人都会选择参加Python培训班.那么,参加武汉Python编程培训班学费贵不贵?武汉Python编程培训费用具体是多少 ...

  7. 想学python从哪里入手-想要学习python,如何入手学习?

    首先你要大概了解下Python都能做什么,Python有机器学习,数据处理展示,网络爬虫,图像处理(jpg dwg),文本处理(excel pdf word ppr),工业控制,工具开发.选择好以后工 ...

  8. python爬取网页停止_Python爬虫之爬取静态网页

    所谓网络爬虫,通俗的讲,就是通过向我们需要的URL发出http请求,获取该URL对应的http报文主体内容,之后提取该报文主体中我们所需要的信息.所以,想要学习python爬虫,需要具备一些http的 ...

  9. python 制作自己的新闻_Python爬虫-带你自制新闻网站,先学先会一起来学吧

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于搜狗网 作者:AI科技大本营 ( 想要学习Python?Python ...

最新文章

  1. php 安装oracle扩展,win PHP7安装oracle扩展
  2. 黑马java代码04-05.docx
  3. UVA 12166 Equilibrium Mobile
  4. 牛客 - 求函数(线段树+区间合并/线段树+矩阵维护)
  5. 基于.NET2.0的System.Net.Mail发送邮件Demo
  6. C++ string 用法详解(转)
  7. (一) 开天辟地入门篇(mvc)
  8. 1.Kong入门与实战 基于Nginx和OpenResty的云原生微服务网关 --- 基础知识点概述
  9. 配置eclipse反编译
  10. C语言编程轰炸,利用C语言编写一个数字炸弹小游戏
  11. 外卖返利系统公众号外卖cps返利小程序淘宝客程序淘客侠客外卖CPS
  12. 定义结构体变量的三种方法
  13. 从零实现深度学习框架——前馈网络语言模型
  14. mysql+tinyint+符号_mysql中TINYINT的取值范围
  15. “插座”,“充电宝”,“数据线”用英语怎么说?
  16. 【HTML5期末大作业】制作一个简单HTML我的班级网页(HTML+CSS+JS
  17. git安装及使用教程
  18. ati备份 linux,恭喜自己 ati显卡驱动安装成功
  19. cuil:吹牛营销大师
  20. 大漠长空孤烟直,吾自翔天遨竟游!

热门文章

  1. 我从高级开发者身上学到的19条编码原则
  2. 套上这个壳,手机自己“跑步”去充电
  3. TensorFlow 2.2.0-rc0,这次更新让人惊奇!
  4. 图文详解什么是快速排序
  5. 为什么蚂蚁永远不会堵车?
  6. 520这天,我突然意识到,她根本配不上我这么聪明的男人
  7. 重磅!GitHub 日收 7000 星, Windows 计算器项目开源即爆红!
  8. 【每日一算法】删列造序
  9. python中map()函数使用方法
  10. 计算机的学生该怎么做?