爬虫系列(一) 网络爬虫简介

爬虫系列(一) 网络爬虫简介写在前面的话 最近博主在学习网络爬虫的相关技术 基于 Python 语言 作为一个学习的总结 打算用博客记录下来 也希望和大家分享一下自己在学习过程中的点点滴滴 话不多说 让我们马上开始吧

写在前面的话 :最近博主在学习网络爬虫的相关技术(基于 Python 语言),作为一个学习的总结,打算用博客记录下来,也希望和大家分享一下自己在学习过程中的点点滴滴,话不多说,让我们马上开始吧

一、爬虫基本简介

什么是网络爬虫,这里先引用一下 百度百科 上的解析:

网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本

说起网络爬虫,人们常常会用这样一个比喻:如果把互联网比喻成一张网,那么网络爬虫就可以认为是一个在网上爬来爬去的小虫子,它通过网页的链接地址来寻找网页,通过特定的搜索算法来确定路线,通常从网站的某一个页面开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有网页都抓取完为止

二、爬虫基本原理

下面的图片很好的展现了一般网络爬虫的基本过程,下面让我们来详细解释一下这张图片的含义吧

在这里插入图片描述

1、发送请求

爬虫的第一个步骤就是对起始 URL 发送请求,以获取其返回的响应

值得注意的是,发送请求实质上是指发送请求报文的过程

请求报文 包括以下四个方面:请求行、请求头、空行和请求体

在这里插入图片描述

但是,往往在使用 Python 相关的网络请求库发送请求时,只需关注某些特殊的部分即可,而非完整的请求报文,下面我们将以粗体的形式标识出我们需要特别关注的部分

(1)请求行

请求行由请求方法、请求 URL 和 HTTP 协议版本 3 个字段组成,字段间使用空格分隔

请求方法:请求方法是指对目标资源的操作方式,常见的有 GET 方法和 POST 方法

  • GET:从指定的资源请求数据,查询字符串包含在 URL 中发送
  • POST:向指定的资源提交要被处理的数据,查询字符串包含在请求体中发送

请求 URL:请求 URL 是指目标网站的统一资源定位符 (Uniform Resource Locator,URL)

③ HTTP 协议版本:HTTP 协议是指通信双方在通信流程和内容格式上共同遵守的标准

(2)请求头

请求头 被认为是请求的配置信息,以下列举出常用的请求头信息(持续补充中)

  • User-Agent:包含发出请求的用户的信息,设置 User-Agent 常用于处理反爬虫
  • Cookie:包含先前请求的内容,设置 Cookie 常用于模拟登陆
  • Referer:指示请求的来源,用于可以防止链盗以及恶意请求

(3)空行

空行标志着请求头的结束

(4)请求体

请求体 根据不同的请求方法包含不同的内容

若请求方法为 GET,则此项为空;若请求方法为 POST,则此项为待提交的数据(即表单数据)

2、获取响应

爬虫的第二个步骤就是获取特定 URL 返回的响应,以提取包含在其中的数据

同样的,响应其实是指完整响应报文,它包括四个部分:响应行、响应头、空行和响应体

在这里插入图片描述

(1)响应行

响应行由 HTTP 协议版本、状态码及其描述组成

① HTTP 协议版本:HTTP 协议是指通信双方在通信流程和内容格式上共同遵守的标准

状态码及其描述

  • 100~199:信息,服务器收到请求,需要请求者继续执行操作
  • 200~299:成功,操作被成功接收并处理
  • 300~399:重定向,需要进一步的操作以完成请求
  • 400~499:客户端错误,请求包含语法错误或无法完成请求
  • 500~599:服务器错误,服务器在处理请求的过程中发生错误

(2)响应头

响应头 用于描述服务器和数据的基本信息,以下列举出常用的响应头信息(持续补充中)

  • Set-Cookie:设置浏览器 Cookie,以后当浏览器访问符合条件的 URL 时,会自动带上该 Cooike

(3)空行

空行标志着响应头的结束

(4)响应体

响应体 就是网站返回的数据,在下一个步骤中我们需要对其进行分析处理

3、解析网页

解析网页实质上需要完成两件事情,一是提取网页上的链接,二是提取网页上的资源

(1)提取链接

提取链接实质上是指获取存在于待解析网页上的其他网页的链接

网络爬虫需要给这些链接发送请求,如此循环,直至把特定网站全部抓取完毕为止

(2)提取资源

提取数据则是爬虫的目的,常见的数据类型如下:

  • 文本:HTML,JSON 等
  • 图片:JPG,GIF,PNG 等
  • 视频:MPEG-1、MPEG-2 和 MPEG4,AVI 等

最终,我们可以对所获得的资源作进一步的处理,从而提取出有价值的信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221140.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午6:49
下一篇 2026年3月17日 下午6:49


相关推荐

  • Sql Server Md5使用

    Sql Server Md5使用SQLServer 的 Md5 使用如下 selectsubstr sys fn sqlvarbaseto HashBytes MD5 3 32

    2026年3月16日
    1
  • svn 删除、移动和改名

    svn 删除、移动和改名

    2021年10月19日
    49
  • 快递物流查询接口查询类API接口介绍_快递鸟

    快递物流查询接口查询类API接口介绍_快递鸟快递物流查询接口是指快递查询网对外开放的应用程序接口 开发人员能够通过调用该接口与快递查询网进行交互 并基于该接口开发自己的快递查询应用程序 目前比较常用的接口有快递鸟 菜鸟 快递 100 等

    2026年3月20日
    3
  • String.Split()函数

    String.Split()函数

    2021年11月13日
    54
  • 【git系列】切换分支相关命令

    【git系列】切换分支相关命令背景为什么小编突然整理出这样一份命令呢?起因还是目前的工作项目的微服务太多,使用idea切换分支时,很容易点错或者合并错分支代码,于是小编下定决心,放弃使用工具切换分支,使用命令操作,使用之后发现爽的一批,操作起来666的,同时也希望帮助小伙伴们快速入门Git操作分支;命令命令的含义和介绍这些八股文,小编不再累赘,直接上命令创建并切换到本地分支gitcheckout-b分支名切换分支gitcheckout分支名两者的区别是否带-b提交分支到远程仓库(本地分支与

    2022年6月20日
    37
  • PyCharm社区版安装教程和环境配置及使用[通俗易懂]

    PyCharm社区版安装教程和环境配置及使用[通俗易懂]一、PyCharm官网下载访问官网地址:https://www.jetbrains.com/pycharm/点击首页【Download】按钮,进入下载页面,选择Community下的【Download】,如图:点击后进入“ThankyoufordownloadingPyCharm!”页面,选择“另存为”,如图:选择本地目录路径,点击【保存】,开始下载:双击本地的PyCharm安装包,进入安装首页,点击【Next>】按钮,如图:进入“ChooseInstallLocati

    2022年8月28日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号