最新要闻
- 全球热讯:非油炸!吃欢天荞麦面皮10袋到手19.9元:麻酱、酸辣随便挑
- 世界今热点:ChatGPT版必应被华人小哥攻破:一句话“催眠”问出所有Prompt
- 世界热门:钙钛矿-硅光伏电池效率突破30%!可稳定工作30年
- 世界即时:公交车刹车提醒是2B请注意 当地回应:考虑不周将“改名”
- 环球热议:苹果忍不住反驳乔布斯女儿吐槽:iPhone 14比iPhone 13 Pro还要好
- 环球资讯:让地球“流浪”前 先来研究下这一个更现实的威胁
- 女子疑吃自热火锅去世:不排除急性中毒、家属索赔176万元
- 当前消息!最香的i9+RTX 4080游戏本!ROG枪神7超竞版仅需18999元起
- 全球热讯:泰国1月份纯电动车上牌量排行:比亚迪称王、国产车霸榜
- GTX 1060落魄了?《原子之心》1080P高画质需GTX 1080
- 《流浪地球2》全球爆火背后!《三体》导演:中国科幻的内核是文化自信
- 神十五航天员首次出舱视频公布:和地球同框 绝美
- 每日速看!方向盘助力失灵、AEB抽风!车主:百年凯迪拉克毁于LYRIQ 绝望
- 速递!Android 14来了:提升续航和流畅度
- 《狂飙》片头被指抄袭 网友放对比照跟国外一电影太相似:背后公司被扒
- 全球热点评!网民称《水浒》应从中小学课文中清除 毒害更多人:浙江官方回应了
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
每日焦点!【0基础学爬虫】爬虫基础之爬虫的基本介绍
大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬虫】专栏,帮助小白快速入门爬虫,本期为爬虫的基本介绍。
【资料图】
一、爬虫概述
爬虫又称网络蜘蛛、网络机器人,网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:
- 通用网络爬虫(Scalable Web Crawler):抓取互联网上所有数据,爬取对象从一些种子 URL 扩充到整个 Web,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据,是捜索引擎抓取系统(Baidu、Google、Yahoo 等)的重要组成部分。
- 聚焦网络爬虫(Focused Crawler):抓取互联网上特定数据,按照预先定义好的主题有选择地进行网页爬取的一种爬虫,将爬取的目标网页定位在与主题相关的页面中,选择性地爬取特定领域信息。
- 增量式网络爬虫(Incremental Web Crawler):抓取互联网上刚更新的数据,采取增量式更新和只爬取新产生的或者已经发生变化网页,它能够在一定程度上保证所爬取的页面是尽可能新的页面,减少时间和空间上的耗费。
- 深层网络爬虫(Deep Web Crawler):表层网页(Surface Web)是指传统搜索引擎可以索引的页面,以超链接可以到达的静态网页为主构成的 Web 页面;深层网页(Deep Web)是指不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的 Web 页面。在互联网中,深层页面的数量往往比表层页面的数量要多很多。
爬虫程序能模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频、音频) 等爬取到本地,进而提取自己需要的数据,并存放起来使用,每一个程序都有自己的规则,网络爬虫也不例外,它会根据人们施加的规则去采集信息,这些规则为网络爬虫算法,根据使用者的目的,爬虫可以实现不同的功能,但所有爬虫的本质,都是方便人们在海量的互联网信息中找到并下载到自己要的那一类,提升信息获取效率。
爬虫采集的都是正常用户能浏览到的内容,而非所谓的 ”入侵服务器“,常说高水准者可 ”所见即所得“,意为只要是能看的内容就能爬取到,希望各位都能达到这个程度~
二、爬虫的用途
现如今大数据时代已经到来,网络爬虫技术成为这个时代不可或缺的一部分,企业需要数据来分析用户行为、自己产品的不足之处以及竞争对手的信息等,而这一切的首要条件就是数据的采集。网络爬虫的价值其实就是数据的价值,在互联网社会中,数据是无价之宝,一切皆为数据,谁拥有了大量有用的数据,谁就拥有了决策的主动权。
网络爬虫目前主要的应用领域如:搜索引擎、数据采集、数据分析、信息聚合、竞品监控、认知智能、舆情分析等等,爬虫业务相关的公司数不胜数,如百度、谷歌、天眼查、企查查、新榜、飞瓜等等,在大数据时代,爬虫的应用范围广、需求大,简单举几个贴近生活的例子:
求职需求:获取各个城市的招聘信息及薪资标准,方便筛选出适合自己的;
租房需求:获取各个城市的租房信息,以便挑选出心仪的房源;
美食需求:获取各个地方的好评美食,让吃货不迷路;
购物需求:获取各个商家同一个商品的价格及折扣信息,让购物更实惠;
购车需求:获取心仪车辆近年的价格波动,以及不同渠道各车型的价格,助力挑选爱车。
三、URI 及 URL 的含义
URI(Uniform Resource Identifier),即统一资源标志符,URI(Uniform Resource Location),即统一资源定位符,例如 https://www.kuaidaili.com/ ,既是一个 URI,也是一个 URL,URL 是 URI 的子集,对于一般的网页链接,习惯称为 URL,一个 URL 的基本组成格式如下:
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,例如 https://www.kuaidaili.com/ 相当于 https://www.kuaidaili.com:443;
path:路径,指的是网络资源在服务器中的指定地址,通过 host:port 我们能找到主机,但是主机上文件很多,通过 path 则可以定位具体文件。例如 https://www.baidu.com/file/index.html,path 为 /file/index.html,表示我们访问 /file/index.html 这个文件;
parameters:参数,用来指定访问某个资源时的附加信息,主要作用就是像服务器提供额外的参数,用来表示本次请求的一些特性,例如 https://www.kuaidaili.com/dps;kspider,kspider 即参数,现在用的很少,大多数将 query 部分作为参数;
query:查询,由于查询某类资源,若多个查询,则用 & 隔开,通过 GET 方式请求的参数,例如:https://www.kuaidaili.com/dps/?username=kspider&type=spider,query 部分为 username=kspider&type=spider,指定了 username 为 kspider,type 为 spider;
fragment:片段,对资源描述的部分补充,用来标识次级资源,例如 https://www.kuaidaili.com/dps#kspider,kspider 即为 fragment 的值:
应用:单页面路由、HTML 锚点;
#
有别于?
,?
后面的查询字符串会被网络请求带上服务器,而 fragment 不会被发送的服务器;fragment 的改变不会触发浏览器刷新页面,但是会生成浏览历史;
fragment 会被浏览器根据文件媒体类型(MIME type)进行对应的处理;
默认情况下 Google 的搜索引擎会忽略
#
及其后面的字符串,如果想被浏览引擎读取,需要在#
后紧跟一个!
,Google 会自动将其后面的内容转成查询字符串_escaped_fragment_
的值,如 https://www.kuaidaili.com/dps#!kspider,转换后为 https://www.kuaidaili.com/dps?escaped_fragment=kspider。
由于爬虫的目标是获取资源,而资源都存储在某个主机上,所以爬虫爬取数据时必须要有一个目标的 URL 才可以获取数据,因此,URL 是爬虫获取数据的基本依据,准确理解 URL 的含义对爬虫学习有很大帮助。
四、爬虫的基本流程
- 发起请求:通过 URL 向服务器发起 Request 请求(同打开浏览器,输入网址浏览网页),请求可以包含额外的 headers、cookies、proxies、data 等信息,Python 提供了许多库,帮助我们实现这个流程,完成 HTTP 请求操作,如 urllib、requests 等;
- 获取响应内容:如果服务器正常响应,会接收到 Response,Response 即为我们所请求的网页内容,包含 HTML(网页源代码),JSON 数据或者二进制的数据(视频、音频、图片)等;
- 解析内容:接收到响应内容后,需要对其进行解析,提取数据内容,如果是 HTML(网页源代码),则可以使用网页解析器进行解析,如正则表达式(re)、Beautiful Soup、pyquery、lxml 等;如果是 JSON 数据,则可以转换成 JSON 对象进行解析;如果是二进制的数据,则可以保存到文件进行进一步处理;
- 保存数据:可以保存到本地文件(txt、json、csv 等),或者保存到数据库(MySQL,Redis,MongoDB 等),也可以保存至远程服务器,如借助 SFTP 进行操作等。
五、爬虫的基本架构
爬虫的基本架构主要由五个部分组成,分别是爬虫调度器、URL 管理器、网页下载器、网页解析器、信息采集器:
- 爬虫调度器:相当于一台电脑的 CPU,主要负责调度 URL 管理器、下载器、解析器之间的协调工作,用于各个模块之间的通信,可以理解为爬虫的入口与核心,爬虫的执行策略在此模块进行定义;
- URL 管理器:包括待爬取的 URL 地址和已爬取的 URL 地址,防止重复抓取 URL 和循环抓取 URL,实现 URL 管理器主要用三种方式,通过内存、数据库、缓存数据库来实现;
- 网页下载器:负责通过 URL 将网页进行下载,主要是进行相应的伪装处理模拟浏览器访问、下载网页,常用库为 urllib、requests 等;
- 网页解析器:负责对网页信息进行解析,可以按照要求提取出有用的信息,也可以根据 DOM 树的解析方式来解析。如正则表达式(re)、Beautiful Soup、pyquery、lxml 等,根据实际情况灵活使用;
- 数据存储器:负责将解析后的信息进行存储、显示等数据处理。
六、robots 协议
robots 协议也称爬虫协议、爬虫规则等,是指网站可建立一个 robots.txt 文件来告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,而搜索引擎则通过读取 robots.txt 文件来识别这个页面是否允许被抓取。但是,这个robots协议不是防火墙,也没有强制执行力,搜索引擎完全可以忽视 robots.txt 文件去抓取网页的快照。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的 robots.txt,或者使用 robots 元数据(Metadata,又称元数据)。
robots 协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私,俗称 “君子协议”。
robots.txt 文件内容含义:
- User-agent:, 这里的 * 代表的所有的搜索引擎种类,是一个通配符
- Disallow: /admin/, 这里定义是禁止爬取 admin 目录下面的目录
- Disallow: /require/, 这里定义是禁止爬取 require 目录下面的目录
- Disallow:/ABC/, 这里定义是禁止爬取 ABC 目录下面的目录
- Disallow:
/cgi-bin/*.htm
, 禁止访问 /cgi-bin/ 目录下的所有以 ".htm" 为后缀的 URL(包含子目录) - Disallow:
/*?*
, 禁止访问网站中所有包含问号 (?) 的网址 - Disallow:/.jpg$, 禁止抓取网页所有的 .jpg 格式的图片
- Disallow:/ab/adc.html, 禁止爬取 ab 文件夹下面的 adc.html 文件
- Allow:/cgi-bin/, 这里定义是允许爬取 cgi-bin 目录下面的目录
- Allow:/tmp, 这里定义是允许爬取 tmp 的整个目录
- Allow: .htm$, 仅允许访问以 ".htm" 为后缀的 URL
- Allow: .gif$, 允许抓取网页和 gif 格式图片
- Sitemap:网站地图, 告诉爬虫这个页面是网站地图
查看网站 robots 协议,网站 url 加上后缀 robotst.txt 即可,以快代理为例:
https://www.kuaidaili.com/
- 禁止所有搜索引擎访问网站的任何部分
- 禁止爬取 /doc/using/ 目录下面的目录
- 禁止爬取 /doc/dev 目录下面所有以 sdk 开头的目录及文件
七、爬虫与法律
近年来,与网络爬虫相关的法律案件和新闻报道层出不穷,推荐观看:K哥爬虫普法专栏,不论是不是爬虫行业的可能都听说过一句 “爬虫学的好,牢饭吃到饱”,甚至不少人觉得爬虫本身就是有问题的,处于灰色地带,抗拒以致不敢学爬虫,但实际并不是这样,爬虫作为一种计算机技术,其技术本身是具有中立性的,法律也并没禁止爬虫技术,当今互联网很多技术是依赖于爬虫技术而发展的,公开数据、不做商业目的、不涉及个人隐私、不要把对方服务器爬崩、不碰黑产及黄赌毒就不会违法,技术无罪,有罪的是人,切记不要触碰法律的红线!
-
记录--千万别让 console.log 上生产!用 Performance 和 Memory 告诉你为什么
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助很多前端都喜欢用console log调试,先...
来源: 每日焦点!【0基础学爬虫】爬虫基础之爬虫的基本介绍
记录--千万别让 console.log 上生产!用 Performance 和 Memory 告诉你为什么
省选集训2023年2月9日T2
全球热讯:非油炸!吃欢天荞麦面皮10袋到手19.9元:麻酱、酸辣随便挑
世界今热点:ChatGPT版必应被华人小哥攻破:一句话“催眠”问出所有Prompt
世界热门:钙钛矿-硅光伏电池效率突破30%!可稳定工作30年
世界即时:公交车刹车提醒是2B请注意 当地回应:考虑不周将“改名”
环球热议:苹果忍不住反驳乔布斯女儿吐槽:iPhone 14比iPhone 13 Pro还要好
Entity Framework 教程_编程入门自学教程_菜鸟教程-免费教程分享
全球热文:【Spring】Bean注册注解
【当前独家】算法学习笔记(17): 快速傅里叶变换(FFT)
世界要闻:化繁为简|AIRIOT智慧水务信息化建设解决方案
环球资讯:让地球“流浪”前 先来研究下这一个更现实的威胁
女子疑吃自热火锅去世:不排除急性中毒、家属索赔176万元
当前消息!最香的i9+RTX 4080游戏本!ROG枪神7超竞版仅需18999元起
全球热讯:泰国1月份纯电动车上牌量排行:比亚迪称王、国产车霸榜
GTX 1060落魄了?《原子之心》1080P高画质需GTX 1080
环球关注:一步一腳印的 iOS App 上架和更新流程
当前快看:学习笔记——尚好房项目(项目介绍、环境搭建、配置依赖关系)
[数据结构] 二叉树的层次遍历
全球实时:JVM sandbox 实现热修复示例
《流浪地球2》全球爆火背后!《三体》导演:中国科幻的内核是文化自信
神十五航天员首次出舱视频公布:和地球同框 绝美
每日速看!方向盘助力失灵、AEB抽风!车主:百年凯迪拉克毁于LYRIQ 绝望
速递!Android 14来了:提升续航和流畅度
《狂飙》片头被指抄袭 网友放对比照跟国外一电影太相似:背后公司被扒
环球资讯:剖析字节案例,火山引擎 A/B 测试 DataTester 如何“嵌入”技术研发流程
Docker安装使用Kafka
每日动态!机器学习-KNN
全球热点评!网民称《水浒》应从中小学课文中清除 毒害更多人:浙江官方回应了
24岁生日当天崩了!腾讯QQ回应:服务器挤爆了 现已恢复
【全球报资讯】酒剑仙拿狙蚌埠住了 《仙剑奇侠传》五位角色入驻《和平精英》
如何注册 ChatGPT ,OpenAI
每日头条!A/B测试教程_编程入门自学教程_菜鸟教程-免费教程分享
环球即时看!24亿巨制大片 《速度与激情10》开启预售 片长130分钟
天天热点!魅族20 Pro外观偷跑:矩阵三摄 纯白机身太吸睛
世界今日报丨年轻人别以赚钱为目标!张朝阳称别把考试太当回事:不一定非上好大学
天天即时:中国在土耳其建造电站强震中未受损:稳定保障救援电力供应
实时焦点:微软公布ChatGPT版Bing不到48小时:申请用户量已超百万
天天热推荐:01-数据结构与算法-目录索引
环球快消息!keycloak~再说session和token
学习笔记——redis集群(定义、集群连接、查看集群、节点分配方式、插槽、集群中录入值、查询集群中的值、故障恢复)
滴滴一面:order by 调优10倍,思路是啥?
投诉不断 极氪被爆出现大规模动力故障 官方回应:会升级
焦点讯息:昆虫学硕士因表演双节棍获得工作 2000万粉大V感慨:掌握一门手艺很重要
当前报道:手机QQ崩了:显示无网络 你消息接收正常吗?
【环球新要闻】Moment推出1.55X变形镜头:iPhone也能拍出电影级超宽照片
十八罗汉分别叫什么?十八罗汉排名及顺序
马前泼水指的是什么生肖?马前泼水这个故事是什么意思?
巴黎恋人的结局是什么?巴黎恋人演员表
手净欲摸杯是什么意思?手净欲摸杯的出处是哪里?
环球观点:Linux 命令大全:2万字实现Linux自由
20088乐队现在怎么样?20088乐队现在怎么样了?
milo显示器是什么牌子?milo显示器怎么样?
ec文件是什么的简称?ec文件怎么打开?
神舟笔记本如何下载安装软件?神舟笔记本如何下载驱动?
tplink路由器怎么设置端口映射?tplink路由器怎么重新设置密码?
冰箱电磁阀怎么判断好坏?冰箱电磁阀的颜色代表什么?
票房榜前10稳了!《流浪地球2》总票房突破35亿 官方公布月球美术设计
每日信息:丰田皇冠遭车主集体投诉:空调管短了 漏水漏风
腾讯严惩《和平精英》外挂 一大批玩家一觉醒来发现被封号10年
高速特斯拉自动驾驶 驾驶员座位上睡觉!网友:保险赔吗?
世界实时:女子应聘人事被要求身高1米63以上 追问HR被回怼:不自信就不用了解了
最新资讯:keycloak~JWT没有被持久化_是因为你对方法论理解不到位
快喝不起了!农夫山泉涨价:纯净水、矿泉水啥区别、到底哪个好?
天天微头条丨在ChatGPT眼里 未来的汽车竟长这模样
天天快报!ChatGPT引发失业恐慌?这20种工作要避开:含医生、快递员
天天新动态:果然“超级奶爸”!李想晒六口全家福:期待五胎到来
订单充足不愁卖 国产特斯拉Model Y入门版涨价:贵了2000
环球滚动:学习笔记——redis持久化之RDB、AOF
BigDecimal加减乘除运算整合工具类
天天新资讯:4年还完20万欠款!夫妻回应剪掉名下所有信用卡 告别卡奴引网友感叹
天天热文:Win11又出严重bug:Intel用户程序崩溃 AMD躲过一劫
世界热点!1600人失业 老牌互联网巨头雅虎裁员20%:离职补偿未定
世界讯息:开窍!iPhone 15摄像头终于要升级:苹果设计让人抓狂 背部凸起更严重
环球视讯!3499元爆火!真我GT Neo5 1T版抢购一空:2023年旗舰射门员
世界最资讯丨日本国产大飞机失败:三菱重工不服输 自研新一代战机
天天看点:读Java实战(第二版)笔记06_新的日期和时间API
世界时讯:NVIDIA发布GeForce 528.49驱动:首发支持史上最强移动显卡
全球实时:网友50000元攒机 到底是不是大冤种?
今日热闻!基于高层次综合器(Vivado HLS)的硬件优化[原创www.cnblogs.com/helesheng]
你同意?张朝阳:《流浪地球2》跟好莱坞还是没法比
【天天时快讯】奇葩!哈尔滨机场一旅客为逃避安检把活蜗牛藏嘴里
环球热议:Google放大招对抗ChatGPT:结果低级答错题 市值蒸发1000亿
微头条丨单枪匹马也能拍大片!这次又让大疆给拿捏了
快资讯:史上最强AMD显卡!撼迅正式发布水冷RX 7900 XTX 还是单插槽
Spring配置类理解(Lite模式和Full模式)
环球速讯:JAVA中如何判断一个ResultSet结果集是否为空
【天天速看料】MYSQL脱敏 || 给开发人员限制权限,保证mysql数据库数据安全
重点聚焦!小白也能做应用(二)之fusion app增加B站视频页面
每日观点:法国调香师夸国产花露水清新还美丽 要卖450元 网友:六神YYDS
MATLAB 实现点云累计-坐标系转换-目标范围点云提取(附代码与代码注释)
【全球快播报】面向对象知识点汇总(小白必会)
(一)浅谈人工智能:ChatGPT
《蚁人3》女儿凯茜中文预告公布 首映礼美艳图赏
环球热消息:【一句话】@Configuration和@Component的区别
世界看热讯:《分布式技术原理与算法解析》学习笔记Day06
焦点消息!ASP.NET Core+Element+SQL Server开发校园图书管理系统(完)
全球看点:if else 代码优化实战
全球动态:网络协议-ssh基础