爬虫又称网络蜘蛛、网络机器人,网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:
爬虫程序能模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频、音频) 等爬取到本地,进而提取自己需要的数据,并存放起来使用,每一个程序都有自己的规则,网络爬虫也不例外,它会根据人们施加的规则去采集信息,这些规则为网络爬虫算法,根据使用者的目的,爬虫可以实现不同的功能,但所有爬虫的本质,都是方便人们在海量的互联网信息中找到并下载到自己要的那一类,提升信息获取效率。
爬虫采集的都是正常用户能浏览到的内容,而非所谓的 ”入侵服务器“,常说高水准者可 ”所见即所得“,意为只要是能看的内容就能爬取到,希望各位都能达到这个程度~
现如今大数据时代已经到来,网络爬虫技术成为这个时代不可或缺的一部分,企业需要数据来分析用户行为、自己产品的不足之处以及竞争对手的信息等,而这一切的首要条件就是数据的采集。网络爬虫的价值其实就是数据的价值,在互联网社会中,数据是无价之宝,一切皆为数据,谁拥有了大量有用的数据,谁就拥有了决策的主动权。
网络爬虫目前主要的应用领域如:搜索引擎、数据采集、数据分析、信息聚合、竞品监控、认知智能、舆情分析等等,爬虫业务相关的公司数不胜数,如百度、谷歌、天眼查、企查查、新榜、飞瓜等等,在大数据时代,爬虫的应用范围广、需求大,简单举几个贴近生活的例子:
URI(Uniform Resource Identifier),即统一资源标志符,URI(Uniform Resource Location),即统一资源定位符,例如 www.kuaidaili.com/ ,既是一个 URI,也是一个 URL,URL 是 URI 的子集,对于一般的网页链接,习惯称为 URL,一个 URL 的基本组成格式如下:
ini
复制代码
scheme://[username:password@]host[:port][/path][;parameters][?query][#fragment]
各部分含义如下:
scheme:获取资源使用的协议,例如 http、https、ftp 等,没有默认值,scheme 也被称为 protocol;
username:password:用户名与密码,某些情况下 URL 需要提供用户名和密码才能访问,这是个特殊的存在,一般访问 ftp 时会用到,显式的表明了访问资源的用户名与密码,但是可以不写,不写的话可能会让输入用户名密码;
host:主机地址,可以是域名或 IP 地址,例如 www.kuaidaili.com、112.66.251.209;
port:端口,服务器设定的服务端口,http 协议的默认端口为 80,https 协议的默认端口为 443,例如 www.kuaidaili.com/ 相当于 www.kuaidaili.com:443;
path:路径,指的是网络资源在服务器中的指定地址,通过 host:port 我们能找到主机,但是主机上文件很多,通过 path 则可以定位具体文件。例如 www.baidu.com/file/index.… 为 /file/index.html,表示我们访问 /file/index.html 这个文件;
parameters:参数,用来指定访问某个资源时的附加信息,主要作用就是像服务器提供额外的参数,用来表示本次请求的一些特性,例如 www.kuaidaili.com/dps;kspider… 即参数,现在用的很少,大多数将 query 部分作为参数;
query:查询,由于查询某类资源,若多个查询,则用 & 隔开,通过 GET 方式请求的参数,例如:www.kuaidaili.com/dps/?userna… 部分为 username=kspider&type=spider,指定了 username 为 kspider,type 为 spider;
fragment:片段,对资源描述的部分补充,用来标识次级资源,例如 www.kuaidaili.com/dps#kspider… 即为 fragment 的值:
#
有别于 ?
,?
后面的查询字符串会被网络请求带上服务器,而 fragment 不会被发送的服务器;#
及其后面的字符串,如果想被浏览引擎读取,需要在 #
后紧跟一个 !
,Google 会自动将其后面的内容转成查询字符串 _escaped_fragment_
的值,如 www.kuaidaili.com/dps#!kspide… www.kuaidaili.com/dps?_escape…由于爬虫的目标是获取资源,而资源都存储在某个主机上,所以爬虫爬取数据时必须要有一个目标的 URL 才可以获取数据,因此,URL 是爬虫获取数据的基本依据,准确理解 URL 的含义对爬虫学习有很大帮助。
爬虫的基本架构主要由五个部分组成,分别是爬虫调度器、URL 管理器、网页下载器、网页解析器、信息采集器:
robots 协议也称爬虫协议、爬虫规则等,是指网站可建立一个 robots.txt 文件来告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,而搜索引擎则通过读取 robots.txt 文件来识别这个页面是否允许被抓取。但是,这个robots协议不是防火墙,也没有强制执行力,搜索引擎完全可以忽视 robots.txt 文件去抓取网页的快照**。** 如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的 robots.txt,或者使用 robots 元数据(Metadata,又称元数据)。
robots 协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私,俗称 “君子协议”。
robots.txt 文件内容含义:
User-agent:*
, 这里的 * 代表的所有的搜索引擎种类,* 是一个通配符/cgi-bin/*.htm
, 禁止访问 /cgi-bin/ 目录下的所有以 “.htm” 为后缀的 URL(包含子目录)/*?*
, 禁止访问网站中所有包含问号 (?) 的网址查看网站 robots 协议,网站 url 加上后缀 robotst.txt 即可,以快代理为例:
arduino
复制代码
https://www.kuaidaili.com/
近年来,与网络爬虫相关的法律案件和新闻报道层出不穷,推荐观看:K哥爬虫普法专栏,不论是不是爬虫行业的可能都听说过一句 “爬虫学的好,牢饭吃到饱”,甚至不少人觉得爬虫本身就是有问题的,处于灰色地带,抗拒以致不敢学爬虫,但实际并不是这样,爬虫作为一种计算机技术,其技术本身是具有中立性的,法律也并没禁止爬虫技术,当今互联网很多技术是依赖于爬虫技术而发展的,公开数据、不做商业目的、不涉及个人隐私、不要把对方服务器爬崩、不碰黑产及黄赌毒就不会违法,技术无罪,有罪的是人,切记不要触碰法律的红线!
Python 的迅速崛起对整个行业来说都是极其有利的 ,但“人红是非多
”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。
如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!
有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取
Python全套学习资料
对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方二维码免费领取