python爬虫简介

article/2025/11/8 17:21:41

python爬虫是收集互联网数据的常用工具,近年来随着互联网的发展而快速发展。使用网络爬虫爬取网络数据首先要了解网络概念和主要分类,各类爬虫的系统结构、运作方式,常用策略,以及主要的应用场景,同时,出于版权和数据安全的考虑,还需了解目前有关爬虫的应用合法性以及爬取网站是的需要遵守的协议。

爬虫的概念

网络爬虫也被称为网络蜘蛛、网络机器人,是一个自动下载网页的计算机程序或自动化脚本。

网络爬虫就像一只蜘蛛一样在互联网上沿着URL的丝线爬行,下载每一个URL所指向的网页,分析页面内容。

 

爬虫的原理

1.通用网络爬虫

通用网络爬虫又称为全网爬虫,其爬行对象由一批种子URL扩充至整个Web,该类爬虫比较适合为搜索引擎搜索广泛的主题,主要由搜索引擎或大型Web服务提供商使用。 深度优先策略:按照深度由低到高的顺序,依次访问下一级网页链接,直到无法再深入为止。 广度优先策略:按照网页内容目录层次的深浅来爬行,优先爬取较浅层次的页面。当同一层中的页面全部爬行完毕后,爬虫再深入下一层。

2.  聚焦网络爬虫

聚焦网络爬虫又被称作主题网络爬虫,其最大的特点是只选择性地爬行与预设的主题相关的页面。  基于内容评价的爬行策略:该种策略将用户输入的查询词作为主题,包含查询词的页面被视为与主题相关的页面。  基于链接结构评价的爬行策略:该种策略将包含很多结构信息的半结构化文档Web页面用来评价链接的重要性,其中一种广泛使用的算法为PageRank算法。 基于增强学习的爬行策略:该种策略将增强学习引入聚焦爬虫,利用贝叶斯分类器对超链接进行分类,计算出每个链接的重要性,按照重要性决定链接的访问顺序。 基于语境图的爬行策略:该种策略通过建立语境图学习网页之间的相关度,计算当前页面到相关页面的距离,距离越近的页面中的链接优先访问。

3.  增量式网络爬虫

增量式网络爬虫只对已下载网页采取增量式更新或只爬行新产生的及已经发生变化的网页,需要通过重新访问网页对本地页面进行更新,从而保持本地集中存储的页面为最新页面。 常用的更新方法如下。 统一更新法:以相同的频率访问所有网页,不受网页本身的改变频率的影响。 个体更新法:根据个体网页的改变频率来决定重新访问各页面的频率。 基于分类的更新法:爬虫按照网页变化频率分为更新较快和更新较慢的网页类别,分别设定不同的频率来访问这两类网页。

4.  深层网络爬虫

Web页面按照存在方式可以分为表层页面和深层页面两类。表层页面指以传统搜索引擎可以索引到的页面,深层页面为大部分内容无法通过静态链接获取,隐藏在搜索表单后的,需要用户提交关键词后才能获得的Web页面。 深层爬虫的核心部分为表单填写,包含以下两种类型。 基于领域知识的表单填写:该种方法一般会维持一个本体库,通过语义分析来选取合适的关键词填写表单。 基于网页结构分析的表单填写:这种方法一般无领域知识或仅有有限的领域知识,将HTML网页表示为DOM树形式,将表单区分为单属性表单和多属性表单,分别进行处理,从中提取表单各字段值。

爬虫的合法性与robot.txt协议

1.  爬虫的合法性

目前,多数网站允许将爬虫爬取的数据用于个人使用或者科学研究。但如果将爬取的数据用于其他用途,尤其是转载或者商业用途,严重的将会触犯法律或者引起民事纠纷。 以下两种数据是不能爬取的,更不能用于商业用途。 个人隐私数据:如姓名、手机号码、年龄、血型、婚姻情况等,爬取此类数据将会触犯个人信息保护法。 明确禁止他人访问的数据:例如用户设置了账号密码等权限控制,进行了加密的内容。 还需注意版权相关问题,有作者署名的受版权保护的内容不允许爬取后随意转载或用于商业用途。

当使用一个爬虫爬取一个网站的数据时,需要遵守网站所有者针对所有爬虫所制定的协议,这便是robot.txt协议。

该协议通常存放在网站根目录下,里面规定了此网站那些内容可以被爬虫获取,及哪些网页是不允许爬虫获取的。

网站反爬虫的目的与手段

1. 通过User-Agent校验反爬

浏览器在发送请求的时候,会附带一部分浏览器及当前系统环境的参数给服务器,服务器会通过User-Agent的值来区分不同的浏览器。

 2. 通过访问频度反爬

普通用户通过浏览器访问网站的速度相对爬虫而言要慢的多,所以不少网站会利用这一点对访问频度设定一个阈值,如果一个IP单位时间内访问频度超过了预设的阈值,将会对该IP做出访问限制。 通常需要经过验证码验证后才能继续正常访问,严重的甚至会禁止该IP访问网站一段时间。 

3. 通过验证码校验反爬

有部分网站不论访问频度如何,一定要来访者输入验证码才能继续操作。例如12306网站,不管是登陆还是购票,全部需要验证验证码,与访问频度无关。

4. 通过变换网页结构反爬

一些社交网站常常会更换网页结构,而爬虫大部分情况下都需要通过网页结构来解析需要的数据,所以这种做法也能起到反爬虫的作用。在网页结构变换后,爬虫往往无法在原本的网页位置找到原本需要的内容。

5. 通过账号权限反爬

部分网站需要登录才能继续操作,这部分网站虽然并不是为了反爬虫才要求登录操作,但确实起到了反爬虫的作用。 例如微博查看评论就需要登录账号。

爬取策略制定

针对之前介绍的常见的反爬虫手段,可以制定对应的爬取策略如下。 发送模拟User-Agent:通过发送模拟User-Agent来通过检验,将要发送至网站服务器的请求的User-Agent值伪装成一般用户登录网站时使用的User-Agent值。 调整访问频度:通过备用IP测试网站的访问频率阈值,然后设置访问频率比阈值略低。这种方法既能保证爬取的稳定性,又能使效率又不至于过于低下。 通过验证码校验:使用IP代理,更换爬虫IP;通过算法识别验证码;使用cookie绕过验证码。 应对网站结构变化:只爬取一次时,在其网站结构调整之前,将需要的数据全部爬取下来;使用脚本对网站结构进行监测,结构变化时,发出告警并及时停止爬虫。 通过账号权限限制:通过模拟登录的方法进行规避,往往也需要通过验证码检验。 通过代理IP规避:通过代理进行IP更换可有效规避网站检测,需注意公用IP代理池是 网站重点监测对象。

内容转载于python网络爬虫技术,主编:江吉彬 张良均

侵权联系删除


http://chatgpt.dhexx.cn/article/9l5xNIpM.shtml

相关文章

python爬虫入门教程(非常详细),超级简单的Python爬虫教程

一、基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序。 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据&…

python简单实现网络爬虫

前言 在这一篇博客中,我会用python来实现一个简单的网络爬虫。简单的爬取一下一些音乐网站、小说网站的标题、关键字还有摘要!所以这个爬虫并不是万能爬,只针对符合特定规则的网站使用。(只使用于爬标题、关键字和摘要的&#xff…

【海岛吉他1】全面认识吉他谱

调号 拍号 1G 4/4 休止符:

新手小白学吉他,如何掌握基础快速入门

吉他弹唱是非常快乐,非常浪漫,非常酷的一件事。俗话说“不怕流氓有文化,就怕流氓有吉他”,大家也都知道吉他是把妹的神器。相信很多人的床底下,角落里,都扔了一把布满了灰尘的吉他,因为学不会而…

乐理: 认识吉他谱

文章目录 2019/6/20日记调式节奏与拍谱标记参考资料 2019/6/20日记 基本乐理都不会,到处搜资料太乱了,找了几个免费乐理教程先好好系统学习一下吧,不知道好不好。记录一下, 每天做题做累了看一点吧。。。 网易云公开课聆听音乐(耶鲁大大学公…

转自知乎的吉他学习篇

iPhone Android 错过这篇,你可能这辈子都学不会弹吉他了(多图) 图片:《醉乡民谣》 零基础如何自学吉他? 梁策, 非阴谋论者/产品经理/吉他爱好者 错过这篇文章,你可能这辈子都学不会弹吉他了。 …

新手入门吉他推荐,第一把吉他从这十款选绝不踩雷!初学者吉他选购指南【新手必看】#VEAZEN费森#雅马哈#卡马

一、新手购琴注意事项: 1、预算范围 一把合适的吉他对于初学者来说会拥有一个很好的音乐启蒙。选一款性价比高,做工材料、音质和手感相对较好的吉他自然不会是一件吃亏的事。**初学者第一把琴的预算,我觉得最低标准也是要在500元起&#xf…

学吉他该如何科学背谱?

相信对于很多正在学习或者技巧纯熟的吉他手来说,背谱都是一个难题。你可能会说,背谱,背就完事了。但是实际上,对于高手来说,背诵一个乐谱可能都得花十几个小时,对于新手而言,背诵的时间可能是高…

零基础简单的乐理知识

音符以及它的两种表达形式 首先,我们从最基本的开始讲,即七个基本的音符1234567,也音译为​​do​​、​​re​​、​​mi​​、​​fa​​、​​sol​​、​​la​​、​​xi​​,这是每个人都知道的(当然如果这个都不知道那我也…

Ffmpeg视频压制的基础知识

Ffmpeg视频压制的基础知识 ffplay播放 全屏播放 ffplay -i .\0001.mp4以720P播放 ffplay -i -vf scale1280:-1 .\0001.mp4指定分辨率 ffplay -volume 1 -x 1280 -y 720 .\0001.mp4格式转换 码率设置 ffmpeg -i input.mp4 -b:v 1000 output.mp4-i input 输入路径 -b:v 帧率 …

数字音频基础知识

了解声音 声波 声音始于空气中的振动,如吉他弦、人的声带或扬声器纸盆产生的振动。这些振动一起推动邻近的空气分子,而轻微增加空气压力。压力下的空气分子随后推动周围的空气分子,后者又推动下一组分子,依此类推。高压区域穿过…

2022-08-13 零基础吉他入门知识(三) 六线谱,和弦图和爬格子的知识补充,吉他中的和弦:大三和弦的各个和弦图理解

文章目录 1.六线谱2.和弦图(补充)3.爬格子(补充):按照六根弦的音阶来爬格子4.吉他中的大三和弦4.1.C和弦4.2.D和弦4.3.E和弦4.4.G和弦4.5.A和弦4.6.练习和要点 1.六线谱 六线谱的最上面是一品(吉他最下面最细的那根弦)有时候六线谱会标注数字 其中,0代表空弦,1代表一品,其他数…

2022-07-31 零基础吉他入门知识(一):认识吉他(琴弦,品格)等,如何弹奏吉他,左右手指法练习,扫弦,和弦级数和常见和弦

文章目录 0.前言1.吉他的琴弦1.1.叫什么?1.2.分别是什么音? 2.吉他的品格2.1.名词介绍2.2.变调夹2.3.看懂和弦图 3.开始弹吉他3.1.怎么弹3.2.右手指法练习3.2.左手指法练习(爬格子)3.4.左右手配合 4.扫弦4.1.怎么扫4.2.民谣扫弦(节奏型)4.3.慢谣扫弦(节奏型) 5.和弦5.1.和弦级…

2022-08-01 零基础吉他入门知识(二) 吉他上的十二平均律,给吉他调弦,规范化弹吉他:节拍器,持琴姿势和拨弦手势

文章目录 0.回顾1.吉他上的十二平均律钢琴上的十二平均律:七个白键五个黑键组成数量为12的不同音调的音阶吉他上的十二平均律:找出每一根弦上的1234567吉他上的音阶把位图【记忆】 2.给吉他调弦步骤成功标志 3.左右手练习时的规范化:节拍器,持琴姿势,拨弦姿势 0.回顾 2022-07-…

android 吉他模拟器,真实吉他模拟器

真实吉他模拟器让你出门在外也可以演奏各类吉他,只需要手机就可以模拟吉他琴弦和音色,在手机上练习吉他将不再是梦想,真实吉他模拟器带你遨游乐器演奏世界。 真实吉他模拟器玩法特色 ★ 各种类型的乐器: - 原声吉他 - 电吉他 - 古…

吉他指弹特殊调弦的方法及基础音阶知识

在学习特殊调弦之前我们需要知道一些基础的吉他音阶知识: 这里音阶简谱和吉他弦都可以用123456表示,所以下面的数字具体表示什么一定要区分清楚!! 1.音阶:1 2 3 4 5 6 7 i (这里的i表示1上加一个点,即高音的…

吉他入门乐理知识精髓篇

吉他入门乐理知识精髓篇!!! 心若无尘,一弦一世界,一琴一天堂 基本的乐理对于刚开始接触吉他的初学者非常重要,如果不懂乐理就不能更好的学习吉他,所下面的内容是学习吉他不可缺少的部分。 一、 乐曲的基本组成 一首完整的乐曲是由一些固定的音乐单元组成,分清这些音乐…

【音乐系列】吉他学习入门基本知识

DATE: 2019.8.8 title: 吉他学习入门基本知识 date: 2019-08-08 10:45:47 categories: 生活音乐 tags:吉他 1、吉他选择 新手学吉他,如何快速入门 初学吉他买什么吉他好?新手买吉他必看 雅马哈F310 经过几天对吉他构造的研究,对…

吉他学习丨基础知识

1、吉他音高 从上到下读法:米、西、扫、ruai、啦、米——mi、si、sol、re、la、mi 上带点:高音 不带点:中音 下带点:低音 2、简谱与音程的关系 音程:全音、半音 3、品 琴颈上每格为1品 4、弹法 左手:…