第一节、爬虫基础

64 阅读5分钟

一、HTTP介绍

1.网络协议

一、定义

    1. HTTP(HyperText Transfer Protocol),即超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议。它是互联网上应用最为广泛的一种网络协议。

二、特点

    1. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、POST、HEAD 等。
    1. 灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标记。
    1. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
    1. 无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

三、工作流程

    1. 客户端连接到 Web 服务器:一个 HTTP 客户端,通常是浏览器,与 Web 服务器的 HTTP 端口(默认为 80)建立一个 TCP 套接字连接。
    1. 发送 HTTP 请求:通过 TCP 套接字,客户端向服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据 4 部分组成。
    1. 服务器接受请求并返回 HTTP 响应:服务器解析请求,定位请求资源,服务器将资源复本写到 TCP 套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据 4 部分组成。
    1. 客户端浏览器解析 HTML 内容:客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的 HTML 文档和文档的字符集。客户端浏览器读取响应数据 HTML,根据 HTML 的语法对其进行格式化,并在浏览器窗口中显示。

四、HTTP 与 HTTPS 的区别

    1. 安全性:HTTPS 是在 HTTP 基础上通过传输加密和身份认证保证了传输过程的安全性。
    1. 端口不同:HTTP 默认使用 80 端口,HTTPS 使用 443 端口。
    1. 证书要求:HTTPS 需要申请数字证书来保证服务器的身份真实性。

URL 的组成

一、简介 URL 是 Uniform Resource Locator 的简写,即统一资源定位符。它由以下几部分组成:

二、组成部分

    1. scheme:代表访问的协议,一般为http或者https以及ftp等。
    1. host:主机名、域名,比如www.baidu.com
    1. port:端口号。当访问一个网站时,浏览器默认使用 80 端口。
    1. path:查找路径。比如sz.58.com/chuzu/后面的/chuzu就是path
    1. query-string:查询字符串。比如www.baidu.com/swd=python,后面的wd=python就是查询字符串。
    1. anchor:锚点,前端用来做页面定位的。现在一些前后端分离项目,也用锚点来做导航。

静态网页和动态网页

一、静态网页

    1. 定义 - 不能简单地理解成静止不动的网页,主要指网页中没有程序代码,只有 HTML(超文本标记语言),一般后缀为.html.htm或者.xml等。 - 通俗来说,静态页面就是 HTML、JS、CSS 组成的页面,是纯粹 HTML 格式的网页。
    1. 特点 - 页面一旦做成,内容就不会再改变了,但包括一些能动的部分,如 GIF 动画等。 - 用户可以直接双击打开,且不管任何人任何时间打开的页面内容都是不变的。 - 不论是网页是否被访问,页面都被保存在网站服务器上。 - 内容固定,每个页面都是独立的页面,不会根据浏览者的不同需求而改变。
    1. 后缀 - 以.html.htm.html.shtml.xml作为后缀。

二、动态网页

    1. 定义 - 由 HTML、JS、CSS(模板)+动态程序(例如 PHP、ASP.NET、Java)+数据库(MySQL 等)组成的页面。
    1. 特点 - 内容可根据浏览者不同需求而改变,有数据库支持,在更新和维护方面相对方便。 3. 后缀 - 使用 ASP 或 PHP 或 JSP 等作为后缀。

三、静态网页和动态网页的区别

    1. 更新和维护 - 静态网页:内容一经发布到网站服务器上,无论是否有用户访问,这些网页内容都是保存在网站服务器上的。如果要修改网页的内容,就必须修改其源代码,然后重新上传到服务器上。没有数据库的支持,当网站信息量很大的时候维护起来很麻烦。 - 动态网页:有数据库支持,更新维护相对方便。
    1. 内容展示 - 静态网页:内容固定,每个页面都是独立的页面,不会根据浏览者的不同需求而改变。 - 动态网页:内容可根据浏览者不同需求而改变。
    1. 后缀形式 - 静态网页:以.html.htm.html.shtml.xml作为后缀。 - 动态网页:使用 ASP 或 PHP 或 JSP 等作为后缀。

爬虫requests

  • get
  • post