python爬虫基础知识

  1. 爬虫基本知识
  • 基本流程:网站-爬虫程序-本地存储(让爬虫程序伪装成一个浏览器去请求,而不是一个程序在跑)
  • 日常操作中打开网页流程

输入网站URL,按回车键-浏览器发送请求至远程服务器-远程服务器返回数据-浏览器渲染页面展示出合适的页面

  • URL基本知识

传输协议(HTTPHTTPSFTP等):一个冒号,两个斜杠

主机(通常是一个域名,也有是IP的);

端口(服务器上网络端口号,默认80,可选项);

路径(以“/”开头的一个文件路径);

查询(以“&”开头的遗传查询参数,QueryString

python爬虫基础知识_第1张图片

  • 爬虫中常见 HTTP / HTTPS协议
    • 超文本传输协议( HTTP)的设计目是保证客户机与服务器之间通信。
    • HTTP的工作方式是客户机与服务器之间请求-应答协议。(无状态协议)

 

  1. 爬虫中常见 HTTP / HTTPS方法
  • GET请求
    • 从指定的资源请求数据
    • 请注意,查询字符串(名称 /值对)是在GET请求的URL中发送的
  • POST请求
    • 向指定的资源提交要被处理的数据
    • 请注意,查询字符串(名称 /值对)是在POST请求的HTTP消息主体中发送的
  • 一点点GET / POST 区别
  • HTTP的底层是 TCP/IP,所以 GETPOST的底层也是 TCP/IP ,也就是说GET/POST都是TCP链接。GETPOST能做的事情是一样。你要给GET加上 request body,给 POST带上 url参数,技术上是完全行的通。(GET传递数据时是可见的,GET的所有数据在URL中能够看见,都可以被复制粘贴出来;POST的数据是隐藏的,需要一些抓包的程序把数据拿到)
  • 首先引入一个副作用的概念,副作用指当你发送完一个请求以后,网站上的资源状态没有发生修改,即认为这个请求是无副作用的。比如注册用户这个请求是有副作用的,获取用户详情可以认为是无副作用的。再引入一个幂等性的概念,幂等是说,一个请求原封不动的发送N次和M次(N不等于MNM都大于1)服务器上资源的状态最终是一致的。比如发贴是非幂等的,重放10次发贴请求会创建10个帖子。但修改帖子内容是幂等的,一个修改请求重放无论多少次,帖子最终状态都是一致的。POST/PUT 请求可以通过传递 request body来发送大量的数据,而 GET/DELETE不能。

GET:无副作用,幂等,不可带 Request Body

POST:副作用,非幂等,可以带 Request Body

 

  1. 常用的状态码

python爬虫基础知识_第2张图片

200OK):找到了该资源,并且一切正常。

304NOT MODIFIED:该资源在上次请求之后没有任何修改,这通常用于浏览器的缓存机制。

401(UNAUTHORIZED):客户端无权访问该资源,这通常会使得浏览器要求用户输入用户名和密码,以登陆到服务器。

403(FORBIDDEN):客户端未能获得授权,这通常是在401之后输入了不正确的用户名或密码。

404(NOT FOUND):在制定的位置不存在所申请的资源。

 

  1. HTML基本知识
  • 树状结构

python爬虫基础知识_第3张图片

 

  • 浏览器中 HTML页面渲染流程
  1. 用户输入网址(假设是个 html页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回 html文件;
  2. 浏览器开始载入html代码,发现 标签内有一个 标签引用部CSS文件;
  3. 浏览器又发出 CSS文件的请求,服务器返回这个 CSS文件;
  4. 浏览器继续载入html部分的代码,并且CSS文件已经拿到手了,可以开始渲染页面了;
  5. 浏览器在代码中发现一个 标签引用了一张图片,向服务器发出请求。此时浏览器不会等到图片下载完,而是继续渲染后面的代码;
  6. 服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排布,因此浏览器需要回过头来重新渲染这部分代码;
  7. 浏览器发现了一个包含一行 Javascript代码的

你可能感兴趣的:(python,数据,爬虫,url,python,数据分析)