自用爬虫知识总结--第一章 初识爬虫

发布于:2025-07-18 ⋅ 阅读:(12) ⋅ 点赞:(0)

目录

一、概念

二、相关知识背景

(一)浏览器工作原理

1.网址

2.浏览网页实际发生了什么

3.两种Path

(1) 以 “文件路径” 形式出现:物理路径映射

(2)以 “路由” 形式出现:逻辑路径映射

(二)开发者工具

三、爬虫工作原理


一、概念

       网络爬虫,简称 爬虫(Spider),是一种按照一定规则,自动地抓取互联网信息的 程序 或者脚本。

二、相关知识背景

(一)浏览器工作原理

1.网址

       观察每一次访问操作,总是先更新网址,然后刷新出网址对应的网页内容。所以,要想获取网页内容中的信息,离不开对网址的分析。

       “网址”的全名叫“统一资源定位符”,即URL(Uniform Resource Locator),用于标识资源在网络上的地址,主要由以下几个部分组成:

  1. 网络协议类型(Protocol),它决定了客户端与服务器之间具体以什么样的方式进行通信,常见的有 HTTP、HTTPS、FTP 等;
  2. 域名(Domain Name),比如百度的域名是 www.baidu.com
  3. 资源在服务器中的位置(Path),有时会以文件路径形式出现(适用与静态资源),有时位置则会以路由形式出现(适用与动态资源)。

2.浏览网页实际发生了什么

  1. 我们在浏览器输入 网址(URL);
  2. 浏览器根据网址,调用我们设备的网络能力,找到域名对应的服务器,向服务器 请求(request)获取某某资源;
  3. 服务器收到请求后会作出 响应(response),在内部翻箱倒柜找出相应资源,把资源交给浏览器;
  4. 浏览器加载资源,把内容呈现到我们面前。

3.两种Path

这里扩展解释一下“网址”小节提到的两种path,辅助理解浏览网页时实际发生了什么。

(1) 以 “文件路径” 形式出现:物理路径映射

       这种形式是早期 Web 服务器(如静态网站)的典型处理方式,URL 路径直接对应服务器文件系统中的实际文件位置

  • 原理:服务器收到请求后,会将 URL 路径当作 “文件系统路径”,直接去服务器的硬盘中查找对应的文件。
  • 例子
    当访问 https://example.com/static/blog/2023.html 时,服务器会在自身文件系统中寻找路径为 ./static/blog/2023.html 的文件,找到后直接读取文件内容(如 HTML 代码),返回给客户端。
  • 特点
    • URL 路径与服务器文件系统的物理路径严格对应;
    • 适用于静态资源(如 HTML、CSS、图片等),内容固定,无需动态生成;
    • 缺点:URL 暴露服务器文件结构,灵活性低(比如想修改 URL 格式,必须同步修改文件存放位置)。
(2)以 “路由” 形式出现:逻辑路径映射

       随着动态网站(如电商、社交平台)的发展,URL 路径不再绑定物理文件,而是通过 “路由规则” 映射到服务器的处理逻辑(如函数、模块)。

  • 原理:服务器收到请求后,会通过 “路由系统” 解析 URL 路径,根据预设的规则(如路径中的关键词、参数),匹配到对应的处理函数,由函数动态生成响应内容(而非直接读取文件)。
  • 例子
    当访问 https://example.com/user/123 时,服务器的路由规则可能是:/user/:id 映射到 getUserById(id) 函数。服务器解析出 id=123,调用该函数从数据库查询 ID 为 123 的用户数据,动态生成包含用户信息的 HTML/JSON,返回给客户端。
    此时,服务器文件系统中并不存在 “user/123” 这样的文件,URL 路径是 “逻辑上的资源标识”,与物理文件无关。
  • 特点
    • URL 路径是 “逻辑语义化” 的(如 /user/123 清晰表示 “用户 ID=123 的资源”);
    • 适用于动态资源(内容随数据变化,如用户信息、商品列表);
    • 优势:隐藏服务器文件结构,URL 格式灵活(可随时修改路由规则而不影响文件存放),支持复杂参数传递(如分页、筛选条件)。

(二)开发者工具

这里以夸克浏览器为例,在边栏找到“开发者工具”,点开

本小节主要讲爬虫最常用的面板------Network(负责分析请求与响应)

常用以下三个部分

  1. 功能区,这里我们重点关注类似 🚫 标志的 清除(clear) 按钮,以及 保留记录(Preserve log) 选项;
  2. 筛选区,该功能区可以快速筛选出符合条件的请求,这里我们主要关注以 所有(All) 开始直到 其它(Other) 结束的类型标签,未来我们将用它来快速筛选指定类型请求;
  3. 请求列表区,当开发者工具捕捉到发生在页面中的新请求时,会按请求发生顺序陈列在区域中。

       借助 Network 面板,我们能清晰地观察到,当我们继续课程时,浏览器向服务器发送了什么请求,知道它们的 请求名(name)请求状态(status)请求类型(type) 等信息

       我们点击任意一条请求,查看该请求详情,能够在 Headers(请求头) 面板的 General(总体) 信息中看到 该请求的 URL(Request URL)请求方法(Request Method)状态码(Status Code) 等信息。General 下方则是响应头和请求头信息。

       响应状态码主要能够分为五类:

  1. 代码 100199信息响应,这是服务器在表明,“我收到你的请求了,不过处理起来有点麻烦,你接着发其它请求吧,我干完活了告诉你一声”;
  2. 代码 200299成功,表示服务器成功接收、理解、处理了请求;
  3. 代码 300399重定向,一般用于 URL 重定向,你可以理解为资源已经搬家了,服务器帮你把请求 URL 改成了资源所在的新地址;
  4. 代码 400499客户端错误,也就是我们请求获取资源的方式不对,比如 URL 输入错误,或者没有登录等等;
  5. 代码 500599服务器错误,表明服务器由于某些原因,现在无法作出响应。

(我们最常见的响应状态码是客户端错误中的 404(not found),表示用户可以正常访问服务器,但服务器找不到 URL 对应的资源)

三、爬虫工作原理

       相较于手动访问页面、收集信息;使用爬虫程序自动收集信息时,爬虫实际上是充当了浏览器的功能,向服务器发送请求、获取服务器的响应。与使用浏览器浏览网页不同的是,爬虫程序无需将响应内容呈现出来,而是根据我们设定的规则去提取需要的数据,处理数据,最终将数据保存起来。

       一个完整的爬虫包含下面三个步骤:

  1. 第一步:获取数据,爬虫根据我们提供的 URL,向服务器发送请求获取响应内容;
  2. 第二步:处理数据,处理分为两步,一是解析响应内容,把它整理成 Python 中的数据格式,二是从中提取出所需数据;
  3. 第三步:存储数据,将处理后的数据保存起来,便于后续的使用和分析等。

-----------------------------------------------------------------

就此你已经对爬虫有了初步的认识,下一节我们将进一步认识网页,为后续爬虫打基础

我们下一节见~


网站公告

今日签到

点亮在社区的每一天
去签到