【OpenCV图像处理入门学习教程六】基于Python的网络爬虫与OpenCV扩展库中的人脸识别算法比较

2023-11-12

OpenCV图像处理入门学习教程系列,上一篇第五篇:基于背景差分法的视频目标运动侦测

一、网络爬虫简介(Python3)

网络爬虫,大家应该不陌生了。接下来援引一些Jack-Cui在专栏《Python3网络爬虫入门》中的内容来帮助初学者理解。博客内容均仅用于学习交流,请勿用于任何商业用途!

网络爬虫,也叫网络蜘蛛(Web Spider)。它根据网页地址(URL)爬取网页内容,而网页地址(URL)就是我们在浏览器中输入的网站链接。比如:https://www.baidu.com/,它就是一个URL。

标准的爬虫架构如下:(摘自维基百科)


网络爬虫的主要工作流程:

(1)将种子链接加入到队列
(2)调度器从队列获取链接,执行爬虫访问该链接
(3)爬虫提取页面指定的新的链接,交付给队列(重复第二步),或者下载器(下载资源)

在讲解爬虫内容之前,我们需要先学习一项写爬虫的必备技能:审查元素(如果已掌握,可跳过此部分内容)。

1. 审查元素

在浏览器的地址栏输入URL地址,在网页处右键单击,找到检查,如下图所示:(不同浏览器的叫法不同,Chrome浏览器叫做检查,Firefox浏览器叫做查看元素,但是功能都是相同的)


我们可以看到,右侧出现了一大推代码,这些代码就叫做HTML。什么是HTML?举个容易理解的例子:我们的基因决定了我们的原始容貌,服务器返回的HTML决定了网站的原始容貌。


为啥说是原始容貌呢?因为人可以整容啊!扎心了,有木有?那网站也可以"整容"吗?可以!请看下图:


我能有这么多钱吗?显然不可能。我是怎么给网站"整容"的呢?就是通过修改服务器返回的HTML信息。我们每个人都是"整容大师",可以修改页面信息。我们在页面的哪个位置点击审查元素,浏览器就会为我们定位到相应的HTML位置,进而就可以在本地更改HTML信息。

再举个小例子:我们都知道,使用浏览器"记住密码"的功能,密码会变成一堆小黑点,是不可见的。可以让密码显示出来吗?可以,只需给页面"动个小手术"!以淘宝为例,在输入密码框处右键,点击检查。


可以看到,浏览器为我们自动定位到了相应的HTML位置。将下图中的password属性值改为text属性值(直接在右侧代码处修改):


就这样,浏览器"记住的密码"显现出来了:


说这么多,什么意思呢?浏览器就是作为客户端从服务器端获取信息,然后将信息解析,并展示给我们的。我们可以在本地修改HTML信息,为网页"整容",但是我们修改的信息不会回传到服务器,服务器存储的HTML信息不会改变。刷新一下界面,页面还会回到原本的样子。这就跟人整容一样,我们能改变一些表面的东西,但是不能改变我们的基因。

2. 简单实例(Python3)

我对网络爬虫的简单理解,其实就是通过一个程序脚本(通常来说选择Python因为可用库非常多使得代码很简洁)模仿正常的用户浏览器去和服务器交互从而抓取到网页上的某些感兴趣的特定数据。

如果说上面的内容你都没有搞懂,那么没有关系,我们通过实战来解决问题。下面开始准备环境和工具~

网络爬虫的第一步就是根据URL,获取网页的HTML信息。在Python3中,可以使用urllib.request和requests进行网页爬取。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【OpenCV图像处理入门学习教程六】基于Python的网络爬虫与OpenCV扩展库中的人脸识别算法比较 的相关文章

  • 无法在 PIL 中对 16 位 TIF 应用图像滤镜

    我尝试使用 python 应用图像过滤器PIL http www pythonware com products pil 代码很简单 im Image open fnImage im im filter ImageFilter BLUR 此
  • Python 将列表中的字符串转换为数字

    我遇到了以下错误消息 以 10 为基数的 int 的文字无效 2 2 外部用单引号括起来 内部用双引号括起来 该数据位于primes列出使用print primes 0 样本数据在primes list 2 3 5 7 The primes
  • Python 可以使用单独的媒体播放器打开 mp3 文件吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否可以开一个mp3Python 中的文件 可以使用Popen 我并不是要在程序中运行它 我的意思是作为媒体播放器中的一个单独窗口或其
  • Accel 无法在 gedit 3 插件中工作

    我试图为 Gedit 3 编写一个使用 GObject 自省的小插件 下面显示的代码的相关部分只是为了建立一个环境 然后我可以将函数放入按钮的回调中 但是 该按钮的加速器不起作用 这段代码有什么问题 我正在使用教程here http www
  • 确定Python模块中的函数是否可用

    我正在研究一些使用Python套接字的代码socket fromfd http docs python org library socket html socket fromfd功能 但是 此方法并非在所有平台上都可用 因此我正在编写一些后
  • WTForms 中的小数字段舍入

    我有一个包含价格小数字段的表单 如下所示 from flask ext wtf import Form import wtforms from wtforms validators import DataRequired from deci
  • 肥皂服务的良好框架是什么?

    我正在寻找一个用于肥皂的好框架service 我更喜欢使用Pythonic框架 但是在查看了soaplib rpclib 太不稳定 SOAPy 不适用于2 7 和ZSI 太 令人困惑 之后 我不确定这是否可能 我对使用另一种语言感到满意 尽
  • 更改Python pylab玫瑰/极坐标图中图例标题的字体大小

    我正在尝试更改玫瑰图或 极地 图上现有图例标题的字体大小 大部分代码是由不在的其他人编写的 我已经添加 ax legend title legend title setp l get title fontsize 8 添加标题 legend
  • ValueError:在 R 中使用 keras 模型时在用户代码中

    我正在尝试使用 R 在 R 中运行一维 CNNkeras包裹 我正在使用以下代码 library MASS library keras Create some data data Boston data lt Boston create a
  • 字母表中的加密和解密 - Python GCSE

    我目前正在尝试为学校编写一个程序 以便加密和解密输入的消息 我需要加密或解密的消息仅在字母表中 没有其他符号或密钥 例如 使用消息车加密输入的偏移量为 5 我希望它输出 afs 有人可以帮忙吗 这是我目前的代码 def find offse
  • 在 (i)python 脚本中从 jupyter 内核获取输出

    我想从单个 ipython 会话中打开多个内核 在这些内核上运行代码 然后收集结果 但我不知道如何收集结果 甚至不知道如何查看 stdout stderr 我怎样才能做这些事情呢 到目前为止我所得到的 我已经使用如下代码管理了前两个步骤 打
  • 为什么全新安装后会有pip和conda包?

    All Windows 10 64 位 d l Anaconda 2 5 0 与 Python3 64 位并安装 全新安装后我输入conda list 并且 在软件包中 我看到 重复像 jupyter 1 0 0 py35 1 jupyte
  • 使用 Xcode 为 OS X Lion / Mountain Lion 编译 OpenCV (2.3.1+)

    谁能给我提供一些如何使用 Xcode 在 OS X Lion 上编译 OpenCV 2 3 1 的详细指南 我对此很生气 我得到了源代码 使用 cmake 创建 Xcode 模板并尝试构建它 但它失败并出现大约 200 个错误 提前致谢 多
  • 如何替换被测模块的文件访问引用

    pyfakefs https code google com p pyfakefs 听起来非常有用 它 最初是作为核心 Python 模块的一个适度的假实现来开发的 以支持中等复杂的文件系统交互 并于 2006 年 9 月在 Google
  • Tornado websocket handler , self.close() 正在关闭连接而不触发 on_close() 方法

    我是 python stackoverflow tornado 的新手 所以请耐心等待 纠正我 我正在使用龙卷风开发实时应用程序 当我在 Websocket 处理程序类中调用 self close 时 on close 方法不会启动 这次我
  • Python 类方法的示例用例是什么?

    我读了Python 中的类方法有什么用 https stackoverflow com questions 38238 what are class methods in python for但那篇文章中的例子很复杂 我正在寻找 Pytho
  • 检测图像是否损坏或损坏

    我需要以编程方式检查用户在我的应用程序上选择作为壁纸的图像是否已损坏或损坏 基本上我为用户提供了选择自己的图像作为壁纸的选项 现在 当图像加载时 我只想检查它是否已损坏 如果您正在寻找 PHP 解决方案而不是 javascript 解决方案
  • 如何从python导入路径中删除当前目录

    我想使用 Mercurial 存储库hg本身 也就是说 我克隆了 Mercurialhttps www mercurial scm org repo hg https www mercurial scm org repo hg并想运行一些h
  • python pandas如何在多个条件下过滤字符串

    我有以下数据框 import pandas as pd data 5Star FiveStar five star fiv estar data pd DataFrame data columns columnName 当我尝试用一 种条件
  • Python列表问题

    我在使用 python 列表时遇到问题 简化版本是 mylist1 some items in a list mylist2 mylist1 mylist1 pop i mylist insert i item print mylist1

随机推荐

  • True Liars 【POJ - 1417】【种类并查集+0-1背包】

    题目链接 题目想要知道有P个好人 说真话的人 和Q个坏人 说假话的人 并且有N条信息 代表A说B是好人 yes 坏人 no 那么 在保证答案唯一的情况下输出这P个好人 并且最后的时候输出 end 否则 输出 no 坑点 答案唯一指的是最后你
  • python:冒泡排序(Bubble Sort)超详细教程!

    关于排序 真的非常的重要 数据可以从小到大排序 也可以从大到小排序 这样对于一个有序的数据 我们处理起来就很方便 这对于我们的工作帮助是很大的 那么你拿到一组无序的数据 你将要如何去处理它呢 冒泡排序就是从一个可迭代容器里 用某一索引去和它
  • 经销商订单系统,搭建中的功能介绍(感想)

    一 关于需求方对订货系统的解释 经销商订单系统 也可以叫做企业订货软件 企业订单软件 这是需求商说的 这套系统甲方说是属于企业内部系统 并不属于商城范畴 属于是企业内部单机的订单管理系统演变而来 二 经销商订单系统的流程 2 1 第一步 通
  • 【无标题】黑群辉DSM 6.2.3 系统安装图文教程 (2020-12-27更新)

    https www openos org threads dsm 6 2 3 2020 12 27 29 黑群晖系统其实是指在普通电脑运行Synology DSM系统 事实上在普通PC电脑上安装黑群晖 Synology DSM 也非常方便
  • 2.5.8 构架虚拟SCSI(存储)

    最后更新2021 07 29 架构虚拟SCSI与虚拟Ethernet类似 也需要如下四个步骤 首先 设定需要映射的设备类型 包括LV方式的虚拟磁盘 LUN方式的虚拟磁盘 虚拟光盘 磁带机 并确认VIO分区可以正确使用要映射设备 物理资源 本
  • 讯飞语音识别_讯飞输入法持续功能创新 语音输入最受用户认可

    犹记得10多年前功能机上的输入法 无论是拼音还是笔画 通过物理键盘按部就班地进行输入 效率异常低下 所幸那时候网络没有那么发达 手机聊天应用并不怎么丰富 而且彼时手机还只是 通讯设备 输入法的作用并未体现出来 时至今日 移动应用的兴盛以及手
  • 剑指offer15替换空格字符串

    package heima study day3 import java util Scanner public class 替换空格剑指offer public static void main String args Scanner i
  • Java安全代码扫描问题:不允许使用自动加载类

    解决问题 代码安全扫描 Classes should not be loaded dynamically 要求 Remove this use of dynamic class loading 解决方法 使用jdk自带方法 ClassLoa
  • 【因果学习】VC RCNN(CVPR 2020)代码

    作者基于MaskRCNN框架 Detectron2的前身 开发 受Bottom Up and Top Down Attention for Image Captioning and VQA启发 使用Mask RCNN作为Bottom Up的
  • java spring scope_java – Spring和scope属性

    我在Spring学习中遇到问题 需要一些帮助 我正在学习bean的原型范围 这基本上意味着每次有人或其他bean需要这个bean时 Spring会创建一个新bean而不使用相同的bean 所以我尝试了这段代码 假设我有这个Product类
  • DPDK+Pktgen 高速发包测试

    Pktgen概述 Pktgen Packet Gen erator 是一个基于DPDK的软件框架 发包速率可达线速 提供运行时管理 端口实时测量 可以控制 UDP TCP ARP ICMP GRE MPLS and Queue in Que
  • 在微软工作365天,还你一个我眼中更加真实的微软

    去年12月28日 我正式成为了微软中国的一名员工 今天又是12月28日 不知不觉我已经在这里工作365天了 其实在入职100天的时候我就写过一篇关于微软的文章 详见 在微软工作100天 谈谈我眼中的微软 但那个时候毕竟待的时间还比较短 所以
  • 零基础入门金融风控 Task2 数据分析

    文章目录 1 导入数据分析及可视化过程需要的库 2 读取文件 3 总体了解 4 查看数据集中特征缺失值 唯一值等 5 查看特征的数值类型有哪些 对象类型有哪些 6 变量分布可视化 6 时间格式数据处理及查看 7 掌握透视图可以让我们更好的了
  • 【Linux工具】-yum/gdb

    yum gdb 一 yum 1 简介 2 软件下载 3 软件删除 4 yum源与扩展yum源 5 常见选项 二 gdb 1 简介 2 gdb相关指令 一 yum 1 简介 在Linux下 下载软件通常的方法是下载源代码 然后进行编译得到可执
  • 【单片机毕业设计】【mcuclub-yq-001】基于单片机的翻蛋器 孵化器的设计

    最近设计了一个项目基于单片机的翻蛋器 孵化器系统 与大家分享一下 一 基本介绍 项目名 翻蛋器 孵化器 项目编号 mcuclub yq 001 单片机类型 STC89C52 STM32F103C8T6 具体功能 1 通过DS18B20测量温
  • 学习Java第三天——手机类的创建与使用

    需求 定义一个手机类 然后定义一个手机测试类 在手机测试类中通过对象完成成员变量和成员方法的使用 学习时间 2022 6 21凌晨 程序 成员变量 品牌 价格 成员方法 打电话 发短信 手机类 package com pipi test1
  • 第06篇 开闭原则

    一 定义 开闭原则 Open Closed Principle OCP 一个软件实体应当对扩展开放 对修改关闭 即软件实体应尽量在不修改原有代码的情况下进行扩展 开闭原则是面向对象的可复用设计的第一块基石 它是最重要的面向对象设计原则 二
  • 【gitHubDailyShare】开源的 C++ 入门学习资源,C++ 匠心之作

    分享 GitHub 上一份开源的 C 入门学习资源 Cpp 0 1 Resource 主要包含以下内容 第 1 阶段 C 匠心之作 从 0 到 1 入门 第 2 阶段实战 通讯录管理 第 3 阶段 C 核心编程 第 4 阶段实战 基于多态的
  • 解决ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost:3306‘ (10061)

    ERROR 2003 HY000 Can t connect to MySQL server on localhost 3306 10061 1 安装成功之后输入MYSQL报出ERROR 2003 HY000 Can t connect t
  • 【OpenCV图像处理入门学习教程六】基于Python的网络爬虫与OpenCV扩展库中的人脸识别算法比较

    OpenCV图像处理入门学习教程系列 上一篇第五篇 基于背景差分法的视频目标运动侦测 一 网络爬虫简介 Python3 网络爬虫 大家应该不陌生了 接下来援引一些Jack Cui在专栏 Python3网络爬虫入门 中的内容来帮助初学者理解