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

目录

一、概念

二、相关知识背景

(一)浏览器工作原理

1.网址

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

3.两种Path

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

[(2)以 "路由" 形式出现:逻辑路径映射](#(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. 第三步:存储数据,将处理后的数据保存起来,便于后续的使用和分析等。

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

我们下一节见~

相关推荐
Java开发-楠木14 小时前
【猿人学】web第一届 第7题 动态字体,随风漂移
爬虫·python
大神薯条老师15 小时前
Python从入门到高手9.4节-基于字典树的敏感词识别算法
爬虫·python·深度学习·机器学习·数据分析
李昊哲小课16 小时前
「从 0 到 1」的 Python-requests 爬虫完整教程
爬虫·python
shelter -唯1 天前
基于BeautifulSoup库的简易爬虫实现:以大学排名为例
爬虫·beautifulsoup
小白学大数据2 天前
Scrapy 框架实战:构建高效的快看漫画分布式爬虫
开发语言·分布式·爬虫·python·scrapy
奇舞精选2 天前
爬虫入门
爬虫·python
爬虫程序猿2 天前
利用 Python 爬虫获取 1688 商品详情 API 返回值说明(代码示例)实战指南
开发语言·爬虫·python
不叫十三2 天前
(我与爬虫的较量)码上爬第三题
爬虫
爬虫程序猿4 天前
利用 Java 爬虫按关键字搜索 1688 商品详情 API 返回值说明实战指南
java·开发语言·爬虫
mjy_1114 天前
项目设计文档——爬虫项目(爬取天气预报)
爬虫