一、爬虫基础概念
为了照顾一些新手同学,在项目开始之前我们还是先来讲讲爬虫的基本概念,已经接触过爬虫的同学可以忽略这部分,直接往后面看也可以。
-
1.爬虫基础概念介绍
-
爬虫本质上是人为开发的一种模拟用户行为的自动化数据抓取程序
-
爬虫就是去网页中抓取数据,比如音频,视频,文本这些都是数据
-
爬虫只是一种技术的分支,主要面向网站,网页应用等的数据抓取,是众多数据获取途径中成本最低,效率最高的技术。
-
从技术层面来说,万维网上“一切数据皆可爬”,但是,实际应用过程中必须严格遵守国家法律法规及各大企业机构设定的协议进行爬取。
-
-
2.爬虫是怎么抓取网页数据的?
这就要说到网页三大特性:
-
1,网页都有自己唯一的URL
-
2,网页都是HTML来描述页面信息
-
3,网页都使用HTTP/HTTPS协议来传输HTML数据
-
-
3.固定套路总结
-
四大步:
-
1.分析目标网页
-
2.发送请求(requests) --获得响应(response)数据
-
3.解析数据 --提取我们真正需要的数据
-
4.保存数据 --保存在目标文件中
-
-
requests和response
-
1,浏览器就发送信息给该网址所在的服务器,这个过程叫做HTTP Requests
-
2,服务器收到浏览器发送的信息后,能够根据浏览器发送信息的内容,做相应处理,然后把信息回传给浏览器,这个过程叫做HTTP Response
-
3,浏览器收到服务器的Response信息后,会对信息进行相应处理,然后展示给用户看
-
二,爬虫案例:短视频系列之爬取好看视频
咱们正式进入今天的实战正题,如何快速爬取上千个短视频,以好看视频为例,废话不多说,直接给大家先看一下源码,后面我们再详细讲解。
案例编码:
三,代码逻辑详解:
1.页面分析及url分析
分析目标网页到底该分析写啥呢?首先你要分析他到底是静态网页还是动态网页,那么具体应该怎么分析呢?(以爬取好看视频搞笑类别为例)
-
在页面中单击鼠标右键,点击--查看网页源代码
-
下图中蓝色框标出的这些才是服务器返回给浏览器真正的原数据,没有通过任何的页面渲染
-
接下来红色框为搜索视频标题名,发现找不到!?(全局搜索:Ctrl+F)
- 发现搜索结果为0,说明咱们今天爬取的这个网页为动态网页,他所有的数据都是通过动态加载的,而且我们返回视频页面鼠标往下拉,此时页面会不断给你加载新的视频,这个就叫动态加载
那动态网页咱们如何获取数据包??鼠标右键点击--检查
会弹出下面这样一个控制台,那抓取数据我们应定位到Network,这是浏览器提供的一个类似抓包工具的功能,同时又因为我们要抓取的是动态网站,所以定位到下面的XHR,就会帮我们筛选出所有动态数据,也就是说网页中的动态数据就是被归纳在这个XHR中。
第二个数据包点开右侧会弹出服务器返回给浏览器的原数据,preview就是针对这些原数据,他会帮你把数据进行一个排列,对应的你可以把数据折叠,展开,那我们把这些数据都展开可以看到和网页中视频的标题是对应的上的
那数据包找到了,接下来就是定位到headers,找到Request URL,后面对应的有一个网页地址,这个就是咱们今天确定的URL地址
那我们把这个url截取与导航条上的url对比一下,注意看,是不是跟上面导航条的地址不一样,也就是说动态数据包的地址通常和导航条上的地址是不一样的,所以说分析网站是很重要的,不能说你请求哪个网站就一定是哪个url链接,你得找到真正对的url
接下来还是定位到headers中找到这个request headers,这是一个请求头,这里面有非常多的一些参数,那咱们今天需要拿到一个user-agent的参数,拿下来作用什么?前面讲了爬虫就是去模拟用户请求服务器,那为了避免被对方服务器发现,阻止你去爬取,你的需要伪装自己啊,那user-agent就是浏览器的一个标识
2、发送请求 --request 模拟浏览器发送请求,获取响应数据
3、解析数据
咱们今天是爬取视频,那就需要视频标题名和视频本身播放url,找到title和paly_url后,我们可以采取剥洋葱的方式层层获取到这个videos,因为一个videos就是一个视频数据,注意看这是一个字典格式,可以通过键值对的方式获取,通过拿键名来取值
4,保存数据
通过python编写爬虫程序一键下载上百上千个视频,速度还是相当快的
各位友友,我的网盘资料是越堆越多了,尤其是小白入门Python的资料,我已经用不到了,现准备拿出来分享给大家,有需要的直接拿走。
需要的话可以找我助教,微信号pykf20,她时间比较多,备注一下"领资料",方便她知道你的来意和最快速度给你东西,细品下图:
转载:https://blog.csdn.net/zhiguigu/article/details/114927361