Python网络爬虫分步走之 – 第一步:什么是网络爬虫?

Python网络爬虫分步走之第一步:什么是网络爬虫?

Web Scraping in Python Step by Step – 1st Step, What is Web Crawler?

By Jackson@ML

1. 什么是网络爬虫?

在能够使用Google搜索引擎的场合,你是否尝试过简单搜索:“How does it know where to look? ( 意思是:如何知道去哪里看?),那么很快,Google返回的答案是:web crawlers, 该答案的中文意思是:网络爬虫。

网络爬虫的定义 网络爬虫,也成为搜索引擎机器人或网站蜘蛛,是一种数字机器人,可在互联网上爬取查找及索引搜索引擎的页面。

2. 搜索引擎与网络爬虫

我们通常接触过的搜索引擎,可能有Google, 也可能有Bing,或者Baidu等。

在任意搜索引擎上进行搜索时,该网站可能会根据搜索关键字或者字符串,筛选出数十万亿个页面,以生成与该术语相关的结果列表。

正如我们点击下一个页面,好像有一种永远也到不了底的感觉。
这些搜索引擎究竟如何将所有页面存档?又是如何知道查找它们,并且在几秒钟内生成这些结果的呢?

标准的答案,就是网络爬虫(Web Crawler),也称蜘蛛(Spider)。这些结果都是由自动化运行的程序(常称为“机器人“),来”抓取“或者浏览互联网网络,以便将它们添加到搜素引擎中。

这些成为“机器人“的,会将网站编制索引,以创建最终出现在搜索结果中的页面列表。

网络爬虫还会在这个引擎的数据库中创建和存储这些页面的副本,类似于缓冲区;这样可以使你几乎立刻搜索到结果。这也是搜索引擎经常在其数据库中包含网站缓存版本的原因。

  • **示例一:**从Bing搜索引擎搜索关键字 beautiful beaches(美丽海滩)的图片(图片来自于网络),如下图所示:

在这里插入图片描述

3. 网络爬虫的工作机理是什么?

上面提到搜索引擎。接下来的内容,将扩展一下。

1) 可抓取的网站

搜索引擎通过在页面上的链接来互相传递抓取或访问网站,这是通常的做法。但是,如果您有一个新网站,而没有将您的页面连接到其他页面的链接,您可以通过在 Google Search Console 上提交您的 URL 来要求搜索引擎执行网站抓取。

您可以进一步详细了解相关技术,包括如何检查您的网站是否可抓取和编入索引。

爬虫爬取了数据,就像在新的土地上充当了一次探险家一样。

它们总是在页面上搜寻可发现的链接,并在了解其功能之后,将其记在网站地图上。然而,爬虫只能够筛选网站上的公共页面,哪些无法抓取的私人页面,会被贴上“暗网“(Dark Web)的标签。

网络爬虫在网页上时会收集有关网页的信息,例如文案拷贝(copy)和元标记(meta tags)。然后,爬虫将页面存储在索引中,因此 Google 的算法可以对它们包含的单词进行排序,以便稍后为用户获取和排名。

2) 网络爬虫的例子

说到这里,也许你会问:网络爬虫有哪些例子呢?

通常,流行的搜索引擎都有一个网络爬虫,而大型搜索引擎则有多个爬虫,各带有特定的关注点。

例如,Google 拥有其主要抓取工具 - Googlebot,包括移动和桌面抓取。但 Google 还有额外的几个机器人,例如 Googlebot 图片、Googlebot 视频、Googlebot 新闻和 AdsBot。

以下是您可能遇到的其他一些网络爬虫:
 适用于 DuckDuckGo 的 DuckDuckBot
 Yandex Bot for Yandex
 百度蜘蛛(用于百度搜索)
 Yahoo! Slurp (用于 Yahoo!搜索)
 Bing 还有一个名为 Bingbot 的标准 Web 爬虫和更具体的机器人,如 MSNBot-Media 和 BingPreview。它的主要爬虫过去曾是MSNBot,后来在标准爬虫方面退居二线,现在只涵盖次要的网站爬虫任务。

4. 搜索引擎优化

SEO,即 Search Engine Optimization (搜索引擎优化)。SEO从业者不断优化网站架构、网页和内容,用于改进你的网站以便在搜索引擎(例如Google)中获得更好的排名 - SEO 是一套旨在改善自然搜索结果中多种类型内容的外观、定位和实用性的做法。这些内容可以包括网页、视频媒体、图像、本地商家信息和其他资产。由于自然搜索是人们发现和访问在线内容的首选方法,因此利用 SEO 最佳实践对于确保您发布的数字内容能够被公众找到和选择,从而增加您网站的自然流量,这对于网站推广来说至关重要。

这就要求网页对网络爬虫来说是可访问和可读的。抓取是搜索引擎锁定您的页面的第一种方式,但定期抓取可以帮助它们显示您所做的更改并随时了解您的内容新鲜度。

5. 为什么SEO很重要?

SEO(搜索引擎优化)很重要的一个重要原因,是因为它可以帮助在线发布者出现在搜索引擎显示的结果中。像 Google 和 Bing 这样的搜索引擎都有自己的方法来显示和格式化用户在搜索框中输入查询时显示的内容,如下所示:

在这里插入图片描述
为了响应上图中这样的查询,弄清楚 how to access 5G network (如何接入(访问)5G网络),像Bing这样的搜索引擎可以返回各种各样的结果,有以下几类典型的结果:

1) 有机结果(Organic Results)

Google最熟悉的结果就是传统的自然结果,Bing也趋于表达这样的结果。它们根据特定算法按特定顺序排名的网站页面链接组成。

搜索引擎算法是搜索引擎用来确定可能结果与用户查询的相关性的一组公式。曾几何时,谷歌通常为每个查询返回一个包含 10 个自然结果的页面,但现在这个数字可能会有很大差异,结果的数量会根据搜索者使用的是台式电脑、手机还是其他设备而有所不同。

传统的自然搜索结果如下所示,每个条目都有标题、描述、来源链接以及其他功能,如日期和其他链接。

现在,我们来看一下Bing就刚才的字符串搜索的结果:

  • 国内版搜索结果如下:
    在这里插入图片描述

  • 国际版搜索结果如下:
    在这里插入图片描述

2) SERP功能

Search Engine Results Pages(即搜索引擎结果页面,简称SERP)。 除了传统的自然结果之外,搜索引擎还可以显示各种其他显示,这些显示可以归类为“SERP 功能”的总称。Google SERP的功能有很多种,包括但不限于以下这些:

 本地包结果
 Google 商家资料
 知识面板
 附加链接
 精选片段
 图片包和图片轮播
 视频包
 People Also Ask 功能
 相关搜索

加上额外的 SERP 功能,用于新闻结果、酒店和旅行结果、购物、常见问题解答、工作列表等。

Local Pack Results (本地打包结果) 会显示某些查询的本地企业列表,或者快捷支付的电子商务网站及报价等,这在Google分类列表尤为明显。

但是,在Bing搜索里,只做笼统地做国内、国际分类。
例如:当搜索buy mobile phones online时,国际版列表如下图所示:

在这里插入图片描述
关于搜索引擎的更多详细内容,不在本文的论述范围。今后有机会单独详述。

6. 网络爬虫的基本步骤

认识了网络爬虫之后,可以看出,网络爬虫是一个从Web站点资源爬取所需数据的过程,它包含的基本步骤有以下几步:

1) 识别目标网站。 爬虫的第一步,是识别目标Web站点资源的网址;
2) 请求获取HTML网页。 此时会使用Python函数库发送HTTP请求,来取回HTTP响应的HTML网站页面;
3) 分析HTML网页。 使用可视化工具在HTML网页定位所需数据,并且分析如何搜索和查找出此标签来获取数据;
4) 解析HTML网页。 使用Python函数库解析(Parse)响应文件的HTML网页,可以创建成树状结构的标签对象集合;
5) 从解析网页提取所需数据。 可以通过搜索或访问的方式,获取所需数据,在整理成指定格式后,存储为CSV格式文件,或者JSON格式文件。

参考文献:

  1. https://moz.com/learn/
  2. https://octoparse.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/246399.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

经典目标检测YOLO系列(三)YOLOV3的复现(1)总体网络架构及前向处理过程

经典目标检测YOLO系列(三)YOLOV3的复现(1)总体网络架构及前向处理过程 和之前实现的YOLOv2一样,根据《YOLO目标检测》(ISBN:9787115627094)一书,在不脱离YOLOv3的大部分核心理念的前提下,重构一款较新的YOLOv3检测器,来对YOLOv3有…

Go 命令行解析 flag 包之快速上手

本篇文章是 Go 标准库 flag 包的快速上手篇。 概述 开发一个命令行工具,视复杂程度,一般要选择一个合适的命令行解析库,简单的需求用 Go 标准库 flag 就够了,flag 的使用非常简单。 当然,除了标准库 flag 外&#x…

vue3预览pdf文件的几种方法

文章目录 vue3预览pdf集中方法方法一:方法二:展示效果:需要包依赖:代码: 方法三:展示效果:需要包依赖:代码:自己调参数,选择符合自己的 vue3预览pdf集中方法 …

蓝桥杯备战——7.DS18B20温度传感器

1.分析原理图 通过上图我们可以看到DS18B20通过单总线接到了单片机的P14上。 2.查阅DS18B20使用手册 比赛的时候是会提供DS18B20单总线通讯协议的代码,但是没有提供读取温度数据的代码,所以还是需要我们去查看手册,我只把重要部分截下来了 …

一款强大的矢量图形设计软件:Adobe Illustrator 2023 (AI2023)软件介绍

Adobe Illustrator 2023 (AI2023) 是一款强大的矢量图形设计软件,为设计师提供了无限创意和畅行无阻的设计体验。AI2023具备丰富的功能和工具,让用户可以轻松创建精美的矢量图形、插图、徽标和其他设计作品。 AI2023在界面和用户体验方面进行了全面升级…

基于LLaMA-Factory的微调记录

文章目录 数据模型准备基于网页的简单微调基于网页的简单评测基于网页的简单聊天 LLaMA-Factory是一个非常好用的无代码微调框架,不管是在模型、微调方式还是参数设置上都提供了非常完备的支持,下面是对微调全过程的一个记录。 数据模型准备 微调时一般…

Dockerfile里ADD * 保留原来的目录结构

1、问题 给新模块写Dockerfile,很多静态资源分散在各个目录,于是Dockerfile里我直接一句: ADD ./* /dest/镜像出来后,启动容器,进入容器种后发现:文件拷贝成功,但原来的目录结构都不在了&…

SAP EXCEL上传如何实现指定读取某一个sheet页(ALSM_EXCEL_TO_INTERNAL_TABLE)

如何读取指定的EXCEL sheet 页签,比如要读取下图中第二个输出sheet页签 具体实现方法如下: 拷贝标准的函数ALSM_EXCEL_TO_INTERNAL_TABLE封装成一个自定义函数ZCALSM_EXCEL_TO_INTERNAL_TABLE 在自定义函数导入参数页签新增一个参数SHEET_NAME 在源代码…

云原生离线工作流编排利器 -- 分布式工作流 Argo 集群

作者:庄宇 在现代的软件开发和数据处理领域,批处理作业(Batch)扮演着重要的角色。它们通常用于数据处理,仿真计算,科学计算等领域,往往需要大规模的计算资源。随着云计算的兴起,阿里…

外包干了一个月,技术退步明显。。。。。

先说一下自己的情况,本科生,19年通过校招进入南京某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

ajax点击搜索返回所需数据

html 中body设置&#xff08;css设置跟进自身需求&#xff09; <p idsearch_head>学生信息查询表</p> <div id"div_1"> <div class"search_div"> <div class"search_div_item"> …

重构改善既有代码的设计-学习(三):重新组织数据

1、拆分变量&#xff08;Split Variable&#xff09; 有些变量用于保存一段冗长代码的运算结果&#xff0c;以便稍后使用。这种变量应该只被赋值一次。 如果它们被赋值超过一次&#xff0c;就意味它们在函数中承担了一个以上的责任。如果变量承担多个责任&#xff0c;它就应该被…

永磁直驱式风力发电虚拟同步机仿真模型Matlab/Simulink模型

很久没有分享虚拟同步机控制相关的方向了&#xff0c;主要是因为硕士之后&#xff0c;也就没再继续深入研究这个课题了&#xff0c;更多的是在电科院的项目里会接触。这个课题方向其实作为硕士毕业课题还是够用的&#xff0c;相对来说也是比较容易毕业的&#xff0c;因为涉及的…

【数据分析】matplotlib、numpy、pandas速通

教程链接&#xff1a;【python教程】数据分析——numpy、pandas、matplotlib 资料&#xff1a;https://github.com/TheisTrue/DataAnalysis 1 matplotlib 官网链接&#xff1a;可查询各种图的使用及代码 对比常用统计图 1.1 折线图 &#xff08;1&#xff09;引入 from …

软件包管理:在CentOS 7中部署Tengine

目录 下载&#xff1a; 方法一&#xff1a; 方法二&#xff1a; 部署&#xff1a; 实验操作 下载&#xff1a; 方法一&#xff1a; 1、打开浏览器搜索tengine并点击官网 2、选择需要安装的版本并复制链接链接 标题栏处可以更改为中文界面 下滑选择版本单击下载 在远程连…

数学建模-------误差来源以及误差分析

绝对误差&#xff1a;精确值-近似值&#xff1b; 举个例子&#xff1a;从A到B&#xff0c;应该有73千米&#xff0c;但是我们近似成了70千米&#xff1b;从C到D&#xff0c;应该是1373千米&#xff0c;我们近似成了1370千米&#xff0c;如果使用绝对误差&#xff0c;结果都是3…

【ZYNQ入门】第十篇、基于FPGA的图像白平衡算法实现

目录 第一部分、关于白平衡的知识 1、MATLAB 自动白平衡算法的实现 1.1、matlab代码 1.2、测试效果 1.3 测试源图 2、为什么摄像头采集的图像要做白平衡 3、自动白平衡算法总结 4、FPGA设计思路 4.1、实时白平衡的实现 4.2、计算流程优化思路 第二部分、硬件实…

DDT数据驱动测试

简单介绍 ​ DDT&#xff08;Date Driver Test&#xff09;&#xff0c;所谓数据驱动测试&#xff0c; 简单来说就是由数据的改变从而驱动自动化测试的执行&#xff0c;最终引起测试结果的改变。通过使用数据驱动测试的方法&#xff0c;可以在需要验证多组数据测试场景中&…

playwright自动化项目搭建

具备功能 关键技术&#xff1a; pylaywright测试库pytest单元测试框架pytest-playwright插件 非关键技术&#xff1a; pytest-html插件pytest-rerunfailures插件seldom 测试框架 实现功能&#xff1a; 元素定位与操作分离失败自动截图并保存到HTML报告失败重跑可配置不同…

什么是网络安全?网络安全概况

网络安全涉及保护我们的计算机网络、设备和数据免受未经授权的访问或破坏。 这个领域包括多种技术、过程和控制措施&#xff0c;旨在保护网络、设备和数据免受攻击、损害或未授权访问。网络安全涉及多个方面&#xff0c;包括但不限于信息安全、应用程序安全、操作系统安全等 …