接上篇《20、HTML页面结构的介绍》
上一篇我们正式进入了Python爬虫的实战教程,主要讲解了要爬取的HTML页面的结构。本篇我们来介绍爬虫的相关概念。

一、什么是互联网爬虫

如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据。

通俗一点的解释,就是下面两种说法:

解释1:通过一个程序,根据url(http://taobao.com)进行爬取网页,获取有用信息
解释2:使用程序模拟浏览器,去向服务器发送请求,获取响应信息

二、爬虫的核心

爬虫是网络爬虫的简称,指的是一种自动化程序,用于在互联网上抓取信息。爬虫的核心工作包括爬取网页、解析数据和存储数据。

1、爬取网页

爬虫需要获取网络上的数据来进行后续的处理,这个过程被称为“爬取”。在实际的操作中,通常使用 HTTP 协议进行数据交换。爬虫通过向目标服务器发送 HTTP 请求,并解析返回的 HTML 数据来获得所需的信息。在这个过程中,爬虫需要考虑到以下问题:

●安全性:爬虫需要尽可能地避免对目标服务器造成不必要的负担,因此需要进行合理的请求频率控制。
●可靠性:由于网络环境的不稳定性,爬虫需要具有重试机制以保证数据的完整性和可靠性。
●速度优化:爬虫需要适当地选择请求方式,以及优化请求参数和请求体等内容,以提高爬取效率。

2、解析数据

爬虫获取到的数据通常并不是直接可用的信息,需要进行解析和清洗。数据解析是将爬取到的 HTML 数据转换为可用数据的过程。解析数据时需要解决以下的难点:

●数据格式:HTML中包含了大量的标签和属性信息,需要对其进行解析和提取,转换成可用的数据格式。
●数据清洗:爬虫获取到的数据中可能包含无用的信息、空白字符等,需要进行清洗和处理。
●编码问题:由于不同网站使用的编码方式不同,因此在进行数据解析时需要考虑编码问题。

3、爬虫与反爬虫之间的博弈

爬虫和反爬虫是一种典型的博弈关系。反爬虫指的是针对爬虫的防御机制,旨在保护数据安全和私密性。常见的反爬虫技术包括:

●IP 封禁:目标网站会根据 IP 地址进行限制,当频繁请求时就会被封禁。
●验证码:有效防止爬虫程序自动化操作,但是也增加了用户的操作负担。
●User-Agent识别:通过浏览器头的User-Agent来判断请求是否为真实浏览器发来的,从而区分爬虫和真实用户。
●动态页面:一些网站采用异步加载或Ajax技术构建页面,需要进行JavaScript解析,爬虫需要模拟用户行为来获取数据。

针对这些反爬虫技术,爬虫需要采用相应的策略来规避或者绕过防御措施,例如:

●使用代理:使用代理 IP 来隐藏真实 IP 地址,以免被封禁。
●伪装User-Agent:通过改变请求头中的User-Agent字段,模拟浏览器发送请求,以绕过User-Agent识别。
●分布式爬取:将任务分散给多个爬虫节点,降低单个IP被封禁的风险。
●解析JavaScript:针对动态页面,使用Selenium等工具解析JavaScript。

在进行爬虫开发时,需要根据目标网站的特点选择合适的技术和策略,才能达到高效、稳定和安全的爬取结果。

三、爬虫的用途

网络爬虫被广泛应用于以下几个领域:

1、数据挖掘

网络爬虫可以爬取互联网上的大量数据,包括文本、图片、视频等形式的信息,并进行处理和分析,以挖掘有用的知识和信息。数据挖掘可以帮助企业或组织预测趋势、找到商机、优化运营等。

2、搜索引擎

搜索引擎是指能够根据用户的关键词查询,提供相关网页链接的应用程序。网络爬虫作为搜索引擎的重要组成部分,可以对互联网上的内容进行爬取和索引,将其存储在数据库中,为用户提供快速、准确的搜索结果。

3.舆情监测

网络爬虫可以从各种新闻网站、博客、微博等社交媒体中爬取相关信息,分析舆情趋势,了解公众对某些话题或事件的态度和看法。这对于政府、企业、组织等具有重要的参考价值。

4、电商数据爬取

网络爬虫也可以用于电商数据的爬取,获取商品价格、销售数量等信息,为商家提供竞争情报、市场分析等服务,帮助他们做出更明智的决策。

5、资源收集

有些人使用网络爬虫来收集各种资源,比如学习资料、音乐、视频等。虽然这种行为可能违反了一些网站的服务条款,但是在合法的前提下,也可以为用户提供便利。

目前爬虫流量在目标行业的分布情况:

这里的出行主要是类似12306的买票软件上,其次是社交媒体的新闻资讯,第三个是电商平台的信息,主要用于第三方优惠券商城或者同行业竞品分析等。

总之,网络爬虫作为一种自动化程序,可以从互联网上抓取大量的信息数据,并进行处理和分析,为用户提供有用的知识和信息。它已经成为现代社会不可或缺的一部分,应用前景非常广泛。

四、爬虫的分类

在爬虫的分类中,通用爬虫和聚焦爬虫是两种广泛应用的爬虫类型。

1、通用爬虫

通用爬虫(也称为全网爬虫)是一种能够自动化地抓取互联网上所有可访问的网页的爬虫。它会从一个起始点开始,通过不断地跟踪链接、解析 HTML 等方式,遍历整个互联网,获取尽可能多的信息。

通用爬虫的优点是能够收集大量的数据,但同时也存在着一些问题。首先,通用爬虫需要很长时间才能完成任务,因为它需要遍历整个互联网。其次,由于互联网上存在大量的非常规页面、重定向页面等,通用爬虫可能会受到反爬虫机制的限制。

2、聚焦爬虫

聚焦爬虫(也称为增量式爬虫)是一种只抓取特定内容的爬虫。与通用爬虫不同,聚焦爬虫通过设定爬取目标、规则等方式,有针对性地抓取满足规则的内容。这样可以节省时间和计算资源,提高效率。

聚焦爬虫的优点在于它能够更快地获取所需的信息,并且不容易受到反爬虫机制的限制。但是,由于聚焦爬虫只针对特定内容进行抓取,可能会遗漏一些与目标相关的信息。

3、区别

通用爬虫和聚焦爬虫之间最大的区别在于其爬取的范围和方式不同。通用爬虫旨在遍历整个互联网,通过自动化的方式收集尽可能多的信息。而聚焦爬虫则更加关注特定内容,只针对符合规则的网页进行抓取。

此外,通用爬虫需要存储所有爬取到的数据,因此需要更多的存储空间和计算资源。而聚焦爬虫只需要针对性地抓取目标内容,可以节省很多计算和存储资源。

总体来说,通用爬虫和聚焦爬虫各有优点和适用场景。在应用中,需要根据具体的需求选择不同的爬虫类型。

五、robots协议

Robots协议是一种基于文本的协议,用于指示网络爬虫哪些页面可以访问、哪些页面不能访问。它是由网站管理员在网站根目录下创建名为 robots.txt 的文件,并在其中编制一系列规则。通过识别此文件中的规则,网络爬虫就可以遵循这些规则来访问网站。

Robots协议有以下几个重要部分:

1、User-agent

User-agent是指爬虫的名称或标识符。当爬虫访问网站时,它会向服务器发送一个包含自己标识符的请求头,网站服务器就可以根据这个标识符来区分爬虫和真实用户。

2、Disallow

Disallow是指禁止访问的URL列表。如果某个URL被列在了Disallow列表中,那么爬虫就不应该访问这个URL。值得注意的是,Disallow列表只适用于相对路径,而不适用于绝对路径。

3、Allow

Allow是指允许访问的URL列表。如果某个URL被列在了Allow列表中,那么爬虫可以访问这个URL和Disallow一样,Allow也只适用于相对路径。

4、Sitemap

Sitemap是指网站地图的URL地址。它提供了一个包含所有页面的列表,可以帮助爬虫更快地发现网站的内容。

Robots协议的作用在于保护网站的隐私和安全,同时也可以控制网络爬虫对网站访问的范围。通过设置Robots协议,网站管理员可以防止爬虫访问敏感信息、减轻服务器负担等。但是,需要注意的是,Robots协议并不能防止所有的网络爬虫,只有那些遵循协议规则的爬虫才会受到限制。

总之,Robots协议是一种基于文本的协议,用于指示网络爬虫哪些页面可以访问、哪些页面不能访问。它是网站管理员维护网站安全和隐私的重要工具,同时也可以控制网络爬虫的访问范围。

下面是淘宝网的robots协议:

可以看到它是不允许百度爬虫爬取任何页面的。

至此,爬虫的基本概念就讲解完毕了,下一篇我们来学习基于Python的urllib库的使用,它是我们使用爬虫的基础技术。

参考:尚硅谷Python爬虫教程小白零基础速通教学视频

转载请注明出处:https://blog.csdn.net/acmman/article/details/130911450

【Python从入门到进阶】21、爬虫相关概念介绍相关推荐

  1. python快速入门及进阶

    python快速入门及进阶 by 小强 转载于:https://www.cnblogs.com/dingxiaoqiang/p/11387174.html

  2. python可以从大到小循环嘛_无需编程基础,Python从入门到进阶大法

    原标题:无需编程基础,Python从入门到进阶大法

  3. Python数据分析入门--NumPy进阶学习笔记

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 NumPy 进阶操作 1.NumPy dtype 层次结构 2.NumPy 高阶数组操作 2.1数组的重塑 2.2数组 ...

  4. Python爬虫入门——3.8 Scrapy爬虫项目文件介绍

    本节我们就使用scrapy框架来编写爬虫程序. 声明:参考资料" 从零开始学Python网络爬虫  "作者:罗攀,蒋仟机械工业出版社ISBN:9787111579991 上节我们创 ...

  5. 【Python从入门到进阶】15、函数的定义和使用

    接上篇<14.字典高级应用> 上一篇我们学习了有关字典的高级应用操作(字典的增删改查),本篇我们来学习Python中函数的定义和使用,包括函数的参数.返回值.局部变量和全景变量等操作. 一 ...

  6. python从基础到进阶_无需编程基础,Python从入门到进阶大法

    deffactorial(n): ifn==0: return1 else: returnn * factorial(n-1) 13. 框架与栈调用 Python代码载入框架,框架位于栈中. 函数与参 ...

  7. 一个python下从入门到进阶学习人工智能的网站

    转一个利用python从入门到进阶学习人工智能的网站:https://www.captainai.net/st/ 门槛低,比较通俗易懂. 先粘一下前言部分: 大家好!欢迎来到我的网站! 人工智能被认为 ...

  8. python编程入门视频推荐_Python编程入门2021攻略,书籍推荐,视频推荐,每天更新...

    写这篇文章的初衷 2018年我大学毕业,和很多人一样.大学里的世界,我也是整天LOL.打了4年,确还只是个黄金守门员.恋爱也想都不敢想.不过,话说回来,我拿了三年的奖学金.真的不是因为我学习认真,而是 ...

  9. python go 入门_GitHub - gochao/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...

    PythonShare Python初学者(零基础学习Python.Python入门)书籍.视频.资料.社区推荐 本文 主要 针对 零基础 想学习Python者.本文本文由@史江歌(shijiangg ...

最新文章

  1. mysql as_mysql AS子句
  2. 国科大高级人工智能9-模糊数学和遗传算法
  3. Apache和Nginx下禁止访问特定的目录或文件
  4. NumPy Matplotlib PIP安装
  5. Maven 安装教程详解
  6. IOS开发之——硬件开发-传感器概述(01)
  7. opencv-图像翻转问题
  8. 计算机存储器分级结构,存储器
  9. DownloadHelper使用教程
  10. 支付宝集五福,一个软件就够了~
  11. 插板法、插空法、捆绑法
  12. Windows系统删除蓝牙图标
  13. iperf3 网络测速工具 —— 筑梦之路
  14. 地理空间技术改变世界的未来
  15. 魔坊APP项目-23-种植园,宠物和种植物的状态改变、宠物的状态改动
  16. 进击太空:脑电研究新领域
  17. ***菜鸟要学会的几个cmd ddos命令
  18. 开源网店系统源码PrestaShop v1.7.7.0
  19. Windows 10 安装FileZilla server 中文版 0.9.46 局域网FTP
  20. 江西财经职业学院计算机应用技术代号,江西财经职业学院计算机协会第三届PPT创意大赛...

热门文章

  1. 给elementui的dialog标题下方添加一条线提升观感效果
  2. element-plus dialog #header无效
  3. CSCI 2500 — Computer Organization
  4. ghost硬盘对拷25058错误
  5. launcher3-布局load与bind
  6. 关于运动会的进行及结束
  7. MM32F3273G8P火龙果开发板MindSDK开发教程3 - Sysclk的配置
  8. Matlab——Timer对象(多线程编程)计时器
  9. android:沉浸模式_2020年电子商务技术趋势:沉浸式技术时代
  10. 137/138/139/445端口