Python爬虫你需要积累这些基本知识_Python学习基础路线

爬虫定义、分类和流程

爬虫定义

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

爬虫的分类

通用爬虫:通常指搜索引擎的爬虫

聚焦爬虫:针对特定网站的爬虫

爬虫的用途

  • 今日头条
  • 网易云音乐
  • 12306抢票
  • 网站自动投票
  • 短信轰炸
  • 等等

爬虫的流程

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

robots 协议

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

总结

  • 爬虫概念:模拟浏览器发送网络请求,接收请求响应。只要是浏览器(客户端)能做的事情,爬虫都能够做。
  • 爬虫的分类:聚焦爬虫、通用爬虫
  • 爬虫的流程:
  1. 向起始 url 发送请求,并获取响应
  2. 对响应进行提取
  3. 如果提取 url,则继续发送请求获取响应
  4. 如果提取数据,则将数据进行保存

HTTP 与 HTTPS 的概念

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请求服务器删除指定的页面。CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。OPTIONS允许客户端查看服务器的性能。TRACE回显服务器收到的请求,主要用于测试或诊断。

  • 常见请求头

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

HTTP 响应

  • 响应格式

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

  • 响应头

响应头作用Location这个头配合 302 状态码使用,告诉用户端找谁。Set-Cookie设置和页面关联的 CookieContent-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

1- HTTP + SSL (安全套接字层),即带有安全套接字层的超本文传输协议
2- 默认端口号:443
复制代码
  • HTTPS 作用

在传输过程中对数据进行加密,防止中间路由器、交换机等中间的路由设备对数据进行篡改。

  • HTTP 与 HTTPS 优缺点

HTTP 因为不需要对数据进行加密所以性能更高,但是安全性差。HTTPS 虽然安全性高,但是因为浏览器和服务器端需要对数据进行加解密,所以占用服务器资源。

  • 当前形式

注意:目前 HTTPS 是未来主流,微信小程序,iOS 客户端,android 客户端的接口提供都需要 HTTPS 接口支持。

——文章参考自微信公众号:小詹学Python

转载于:https://juejin.im/post/5cd956146fb9a032484d859f

Python爬虫你需要积累这些基本知识_Python学习基础路线相关推荐

  1. 自学python 编程基础知识_python学习-基础知识-1

    1.计算机历史 计算机使用高低电压的两种状态来描述信息.计算机可以理解的只有二进制数据即010100011....,1个比特位可以表示的状态只有2种,n个比特位可以表示的状态有2的n次方种. 所以如果 ...

  2. 一文学习python 所有基础知识_Python学习基础知识概要

    1.输入输出 输出实例 1 2 print 'hello','world' hello world 输入实例 1 2 3 4 5 name = raw_input(); print "hel ...

  3. mysql数据库python基础知识_python学习之Mysql数据库编程基础知识介绍

    在Python网络爬虫中,通常是通过TXT纯文本方式存储,其实也是可以存储在数据库中的:同时在WAMP(Windows.Apache.MySQL.PHP或Python)开发网站中,也可以通过Pytho ...

  4. python爬虫爬取网易云音乐下载_Python爬虫实践-网易云音乐!没有版权又如何!照样爬取!...

    1.前言 最近,网易的音乐很多听不到了,刚好也看到很多教程,跟进学习了一下,也集大全了吧,本来想优化一下的,但是发现问题还是有点复杂,最后另辟捷径,提供了简单的方法啊! 本文主要参考 python编写 ...

  5. python爬虫爬取豆瓣电影信息城市_Python爬虫入门 | 2 爬取豆瓣电影信息

    这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...

  6. python爬虫开发与项目实战pdf下载_python爬虫开发与项目实战PDF高清文档下载

    随着大数据时代到来,网络信息量也变得更多更大,基于传统搜索引擎的局限性,网络爬虫应运而生,本书从基本的爬虫原理开始讲解,通过介绍Pthyon编程语言和Web前端基础知识引领读者入门,之后介绍动态爬虫原 ...

  7. python爬虫模拟浏览器的两种方法_python爬虫模拟浏览器访问-User-Agent过程解析

    这篇文章主要介绍了python爬虫模拟浏览器访问-User-Agent过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 模拟浏览器访问-Use ...

  8. python爬虫爬取网易云音乐歌曲_Python网易云音乐爬虫进阶篇

    image.png 年前写过一篇爬网易云音乐评论的文章,爬不了多久又回被封,所以爬下来那么点根本做不了什么分析,后面就再改了下,加入了多线程,一次性爬一个歌手最热门50首歌曲的评论,算是进阶版了- 思 ...

  9. python爬虫反爬 css 知乎 专栏_python爬虫反反爬 | 像猫眼电影、大众点评等自定义 css 加密字体怎么破?...

    我们上次说了如何建立反反爬 当时还新建一个简单的帅b网页 具体可以戳以下链接 现在你已经知道了对方是 如何自定义字体加密的了 你要想去反反爬 你就要先站在对方的角度去思考问题 有句话这么说来着 &qu ...

最新文章

  1. 高级转录组分析和R语言数据可视化第12期 (线上线下同时开课)
  2. “元宇宙”概念引发AR/VR新一轮投资潮,去年Q4融资总额达120亿,超过此前2年总和...
  3. Altium Designer原理图和PCB中对元件垂直、水平镜像翻转
  4. duilib combo增加搜索栏_微信对话框上线搜一搜,搜索一步到位!
  5. SPOJ Supernumbers in a permutation(LIS)
  6. @Mybatis传多个参数
  7. 多重继承与虚继承编程实验
  8. AjaxPost、冒泡示例
  9. 创建ListView的基本步骤
  10. forkjoin_应用ForkJoin –从最佳到快速
  11. 【HDU - 2066】:一个人的旅行(Dijkstra算法)
  12. python中格式化_python的format格式化
  13. @PropertiesSource注解读取配置文件中的数据
  14. 属于自己的MES(二)必备的主数据
  15. 人工智能 一种现代方法 第7章 逻辑Agent(命题逻辑)
  16. 互联网晚报 | 06月03日 星期五 | 步步高回应“即将倒闭”传闻、爱彼迎启动房东/房源迁移计划;抖音宣布与中超联赛达成合作...
  17. 百度云文字识别 (AIPOcr)
  18. 三极管分压共射放大电路
  19. webstrom无法格式化局部html,格式化代码失效webstorm
  20. Mac上使用微信读书(微信读书网页版)

热门文章

  1. 1 MySQL 主从同步
  2. linux扫描目标主机开放端口
  3. 酷派手机android版本,酷派大神F2的手机系统是什么?能升级安卓4.3吗?
  4. java jasper 生成xlsx_JasperReports导出到xlsx,而不是xls
  5. java成员变量除了方法传递_JAVA类与对象(四)----成员变量与局部变量 、成员方法、构造方法...
  6. 【Hive】Caused by: MetaException(message:Hive metastore database is not initialized. Please use schema
  7. musicstore edit方法出错的原因和解决方法
  8. 异常值(outlier)
  9. 关于“Unknown or unsupported command ‘install‘”问题解决的小结
  10. Sping Environment为Null的原因和解决方法