爬虫:也叫网络蜘蛛,特指一类自动批量下载网络资源的程序,这是一个比较口语化的定义。更加专业和全面对的定义是:网络爬虫是伪装成客户端与服务端进行数据交互的程序。

爬虫的作用:数据采集、搜索引擎、模拟操作等等。

HTTP与HTTPS:这里只做大概介绍,大家感兴趣的话可以自己去了解一下。

  1. 网络架构:
    1. c/s 即 client server,客户端和服务器
    2. b/s 即 browser server,浏览器和服务器
    3. m/s 即 mobile server,移动端和服务器
  2. HTTP协议:
    1. 计算机之间也是需要一种规则,保障之间信息的有效交流,这就是HTTP协议。
    2. HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW: World Wide Web )服务器传输超文本到本地浏览器的传送协议。目前互连网上90%的网络传输都是基于http协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等),ps:使用TCP通信协议的重要的原因是基于其   面向连接的特点。
  3. HTTP协议的使用:
    1. HTTP请求流程,一次http请求的基本流程是,有客户端向服务端发起一次请求(request), 而服务器在接收到以后返回给客户端一个响应(response)。所以一次完整的http请求包含请求和响应两部分。
    2. URL:发送http请求时,通过URL对网络资源进行定位。URL(Uniform Resource Locator)中文叫统一资源定位符。是用来标识某一处资源的地址。即是我们常说的网址。以下面这个URL为例,URL的各部分组成:协议+域名(端口默认80)+路径+参数。
    3. HTTP请求格式 (请求行,请求头,空行,请求体):客户端发送一个HTTP请求到服务器的请求消息包括以下部分:请求行,请求头,空行和请求数据。
    4. 请求行:根据http标准,http请求可以使用多种请求方法。
      1.0定义了三种请求方法:GET,POST和HEAD方法。
      1.1新增了五种请求方法:OPTIONS,PUT,DELETE,TRACE和CONNECT方法。
      方法描述
      HEAD与GET类似,但仅请求资源的响应头,不返回响应体。
      GET请求指定的页面信息,并返回实体的主体
      POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改
      PUT向指定资源位置上传其最新内容,一般用于更改内容
      DELETE请求服务器删除Request-URL所指定的资源
      OPTIONS允许客户端查看服务器性能
      TRACE回显服务器收到的请求,主要用于测试或诊断
      CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
      常用方法:
      1. GET:

        1. 主要是负责从服务器获取数据

        2. URL中添加请求参数,显示在地址栏

        3. 请求字符串限制 1024个字节,比POST更加高效和方便。 

      2. POST:

        1. 主要负责向服务器提交数据

        2. 没有大小限制比GET传递数据量大,安全性高。

    5. 请求头:请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息。典型的请求头有:
      User-Agent:产生请求的[浏览器](http://www.chinabyte.com/keyword/浏览器/)类型;
      Cookie:[存储](http://storage.chinabyte.com/)于客户端扩展字段,向同一域名的服务端发送属于该域的cookie;
    6. 空行:最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。
    7. 请求体:请求体不在 GET 方法中使用,而是在POST 方法中使用。POST 方法适用于需要客户填写表单的场合。与请求体相关的最常使用的是包体类型 Content-Type 和包体长度 Content-Length。
    8. 状态行:状态行由 HTTP 协议版本、状态码和状态码的描述文本 3 个部分组成,他们之间使用空格隔开。
      状态码   由三位数字组成,第一位数字表示响应的类型,常用的状态码有五大类如下所示:
      1. 1xx:表示服务器已接收了客户端请求,客户端可继续发送请求。
      2. 2xx:表示服务器已成功接收到请求并进行处理。
      3. 3xx:表示服务器要求客户端重定向。
      4. 4xx:表示客户端的请求有非法内容。
      5. 5xx:表示服务器未能正常处理客户端的请求而出现意外错误。
  4. HTTPS:(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
    HTTPS协议是基于TCP/IP协议的,而HTTPS是在HTTP协议的基础之上,再加了一层SSL/TLS协议,数据在传输过程中是加密的。HTTPS协议的默认端口是443。
爬虫主要是两个步骤:爬虫伪装和网页爬取。
  1. 爬虫伪装:为什么要做伪装:爬虫的本质,是模拟客户端向服务端发起请求,所以为了尽量跟客户端一样,一般都会做对应的伪装。
    # import requests
    # 目标url
    # url = 'https://www.baidu.com/'
    # 添加伪装信息,headers是变量名,随便取
    # User-Agent是固定的,从浏览器复制即可
    # headers = {
    #     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;
    # Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
    # Chrome/121.0.0.0 Safari/537.36'
    # }
    # 将伪装信息添加到请求中
    # res = requests.get(url, headers=headers)
    # print(res.text)
  2. 网页爬取:爬虫分为通用爬虫聚焦爬虫。
    # import requests
    # 目标URL
    # url = 'https://tieba.baidu.com/f?
    # kw=%E5%91%A8%E6%9D%B0%E4%BC%A6&ie=utf-8&pn=50'
    # # 伪装信息
    # headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0;
    # Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
    # Chrome/121.0.0.0 Safari/537.36'
    # }
    # 请求
    # res = requests.get(url, headers=headers)
    # 获取响应信息
    # print(res.text)
    # 存储数据 保存为HTML文件
    # with open('1.html', 'w', encoding='utf-8') as f1:
    #     f1.write(res.text)

今天的内容主要是概念偏多,需要自己实操多练习。

更多推荐