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.mzph.cn/news/661318.shtml

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

相关文章

【C++】类和对象万字详解

目录 一、类与对象 1、类是什么 二、类和对象的基础知识 2.1 定义类:成员变量和成员函数 2.2 创建对象:实例化一个类的对象。 2.3对象的生命周期:构造函数和析构函数。 a. 构造函数 b. 析构函数 c.小结: 三、成员变量和…

腾讯云雾锁王国游戏服务器上线,10秒钟快速搭建!

随着科技的飞速发展,游戏行业也迎来了前所未有的繁荣。在这个时代,玩家们对游戏的体验需求日益增长,对服务器的稳定性和速度要求也越来越高。为了满足市场需求,腾讯云推出了雾锁王国游戏联机服务器及一键部署方案,只需…

❤ 做一个自己的AI智能机器人吧

❤ 做一个自己的AI智能机器人 看了扣子(coze)的模型,字节基于chatgpt搭建的一个辅助生成AI的网站,感觉蛮有意思,看了掘金以后,于是动手自己也实现了一个。 官网 https://www.coze.cn/ 进入的网站 1、 创…

java之基础知识、零碎知识

MENU java学习路程之篇一、知识点、path环境变量、计算机发展史、数据的存储和运算、人机交互、计算机语言java学习路程之篇二、知识点、JAVA背景介绍、配置JAVA_HOME、跨平台、JVM、JRE、JDKjava学习路程之篇三、知识点、类、模块、项目、操作、下载、安装、IDEA、开发工具jav…

速过计算机二级python——第二讲:基础语法

第二讲:基础语法 基础语法1. 变量2. 变量命名2.1语法规则2.1.1 区分大小写2.1.2 缩进 4 个空格2.1.3 # 注释 2.2 人机交互1. 输入函数:input()2. 转换函数:eval()3. 输出函数 print() 数据类型String(字符串)数字 组合…

面向对象设计的七大设计原则

在我们探讨如何创建健壮且可维护的面向对象系统时,有一些原则可以为我们提供指导。这些原则可以帮助我们理解如何最好地组织我们的类和对象,以实现高效、模块化和可扩展的设计。在本篇文章中,我们将探讨这些原则,以及如何在我们的…

centos7安装mysql5.7 或者mysql8

1、centos7安装mysql8 mysql官网 https://dev.mysql.com/downloads/mysql/ 示例2个版本的下载地址 #5.7.30下载地址 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar #8.0.22下载地址 wget https://cdn.mysql.com/archives/mysql-8…

Maya------布尔 圆形圆角组件

17. maya常用命令7.布尔 圆形圆角组件_哔哩哔哩_bilibili 选中一个模型,再按shift加选另外一个模型 圆形圆角命令

PVE安装后报错:NO IOMMU Detected解决办法

1、首先在BIOS中确定图形界面卡,打开了VT-D功能。 2、修改grub vim /etc/default/grub 找到:GRUB_CMDLINE_LINUX_DEFAULT"quiet" 然后修改为 GRUB_CMDLINE_LINUX_DEFAULT"quiet intel_iommuon" 3、使用命…

华擎B660 主板 怎么设置打开来电自启功能?

环境: 华擎B660 钢铁传奇 1700 : Intel B660 问题描述: 华擎B660 主板 怎么设置打开来电自启功能? 解决方案: 1.前往-高级- 芯片组配置 2.往下划找到交流 /电源断电恢复 选择电源故障后的电源状态。如果选择 [关机]&#x…

mapbox gl 测量

一、代码 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>Measure distances</title> <meta name"viewport" content"initial-scale1,maximum-scale1,user-scalableno"> <link hre…

Typora导出html文件图片自动转换成base64

Typora导出html文件图片自动转换成base64 一、出现问题二、解决方案三、编码实现3.1.创建Java项目3.2.代码3.3.打包成Jar包 四、如何使用endl 一、出现问题 typora 导出 html 的时候必须带有原图片&#xff0c;不方便交流学习&#xff0c;文件太多显得冗余&#xff0c;只有将图…

【vim 学习系列文章 3.2 -- vim 删除 空格】

文章目录 vim 删除行尾空格 vim 删除行尾空格 在代码开发的过程中&#xff0c;经常会遇到行尾有空格的现象&#xff0c;如下&#xff1a; 我们可以在 .vimrc 中通过map 命令来映射删除行尾空格的快捷键&#xff0c;如下&#xff1a; map d<space> :%s/\s*$//g <cr…

Spring速成(一)

文章目录 Spring速成&#xff08;一&#xff09;1&#xff0c;课程介绍1.1 为什么要学?1.2 学什么?1.3 怎么学? 2&#xff0c;Spring相关概念2.1 初识Spring2.1.1 Spring家族2.1.2 了解Spring发展史 2.2 Spring系统架构2.2.1 系统架构图2.2.2 课程学习路线 2.3 Spring核心概…

Linux实验记录:使用Apache的虚拟主机功能

前言&#xff1a; 本文是一篇关于Linux系统初学者的实验记录。 参考书籍&#xff1a;《Linux就该这么学》 实验环境&#xff1a; VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 正文&#xff1a; 目录 前言&#xff1a; 正文&…

【重温设计模式】构建器及其Java示例

设计模式中的构建器模式介绍 在编程的世界里&#xff0c;设计模式是一种让我们的代码更加优雅、可读、可维护的工具。其中&#xff0c;构建器模式是一种创建型模式&#xff0c;它提供了一种高效且灵活的方式来创建复杂对象。这种模式的主要特点是&#xff0c;它分离了对象的构…

易点易动设备管理平台助力制造企业实现设备的智能化维修和保养管理

在制造业领域&#xff0c;设备的维修和保养是保障生产运行和产品质量的关键环节。然而&#xff0c;传统的维修和保养管理方式往往存在效率低下、难以及时发现问题等问题。为了解决这些挑战&#xff0c;易点易动设备管理平台应运而生。该平台利用物联网和数据分析技术&#xff0…

回归预测 | Matlab实现CPO-GRU【24年新算法】冠豪猪优化门控循环单元多变量回归预测

回归预测 | Matlab实现CPO-GRU【24年新算法】冠豪猪优化门控循环单元多变量回归预测 目录 回归预测 | Matlab实现CPO-GRU【24年新算法】冠豪猪优化门控循环单元多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CPO-GRU【24年新算法】冠豪猪优化…

sectigo ip ssl证书有哪些

Sectigo是移交成立时间较久的CA认证机构&#xff0c;几十年来在全球颁发了各种各样的数字证书&#xff0c;例如&#xff0c;单域名SSL证书、多域名SSL证书、通配符SSL证书等域名SSL证书。Sectigo旗下也有一些不常见的数字证书&#xff0c;例如&#xff0c;代码签名证书、IP证书…

【设计模式】六大原则详解,每个原则提供代码示例

设计模式六大原则 目录 一、单一职责原则——SRP 1、作用2、基本要点3、举例 二、开放封闭原则——OCP 1、作用2、基本要点3、举例 三、里氏替换原则——LSP 1、作用2、基本要点3、举例 四、依赖倒置原则——DLP 1、作用2、基本要点3、举例 五、迪米特法则——LoD 1、作用2、…