飞道的博客

自此,每一个想跟我斗图的人,下场都很难看【Python一键爬取海量表情包,斗图狂魔必备】

333人阅读  评论(0)

在日常聊天中,我们常常使用很多有趣的表情包来活跃气氛,现在聊天时没有表情包的话都感觉与时代脱轨了,但是面对海量的表情包数据,通过手动的方式一个一个去下载显然是做不到的。

比谁的表情包多这种娱乐方式已经是基本操作了,要想赢下斗图就得有拥有海量的表情包,光靠手动下载是不行滴,必须得来点技术活,

那么如何让这些表情包自动的下载的本地呢?

好了~ 废话不多说,我们是可以使用爬虫这一种技术手段来帮助我们完成这一功能。


1.创建请求头,也被称为伪装浏览器

可能有些同学会问了,什么是请求头啊。请求头其实就是一个用户代理,在请求头中是包含了当前用户的操作系统版本信息以及当前用户访问网站所使用的浏览器版本信息。

那么为什么要创建请求头呢,因为在网站访问的过程中,有大部分网站会对当前请求做验证,来判断当前的请求是否合法(不是使用浏览器来获取网站数据的话会被认为非法请求)。如果不添加请求头的话,可能会出现当前网站没有访问权限。

创建方法:

1.打开浏览器

2.按住f12

3.选中NetWork选项卡

4.点击筛选出来的链接(链接选择随意)

5.找到user-agent选项并复制
    
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'


2.使用requests 网络请求库完成网站数据请求

当我们创建完成请求头之后就需要访问网站拿到网站的页面数据了,那么如何获取网站数据呢,这时候就需要使用requests来帮助我们获取了。

  • 在使用requests之前,需要先下载安装。

下载安装命令:pip install requests -i https://pypi.douban.com/simple

  • 安装完成之后我们就可以使用requests了。

使用方法:requests.get('https://fabiaoqing.com/biaoqing/lists/page/1.html', headers=headers).text
    

  • 在获取网页数据的时候,需要调用http协议中的get方法来获取页面数据,一般情况下会返回html页面源代码

需要传入的参数:网站的域名以及请求头

如果想获取文本数据,那么久调用requests中内置的text方法返回文本数据,如果想要获取二进制数据则使用内置的content方法。


3.使用bs4对页面数据进行提取

因为一个页面包含的数据太多了,例如:搜索框、页面广告、ICP备案号等等。但是我们只是想要获取页面中的表情包图片,那该怎么办呢?这时候我们就需要用到一个非常好用的第三方包:bs4
使用方法:

1.在浏览器中按住f12调出开发者工具,点击Elements,之后点击元素选择器(左边的小箭头),之后选中页面上的图片,左键点击。浏览器就会帮助我们定位图片所在html代码的位置

2.看到被选中的标签后,查看当前图片的元素标签,当前标签是img,观察当前标签中的属性,有一个class属性,复制该属性的值

3.调用方法:find_all('img', class_='ui image lazy'),调用之后会返回图片标签的列表

4.对列表进行循环,将img标签中的data-original属性的值提取出来
        for i in img_list:
            image_url = i['data-original']

 5.提取完成之后将会获得当前页面所有的图片标签,我们对当前获取的链接进行二次请求并使用python内置的with open方法将图片数据下载到本地
        with open('./' + '图片名称' + '文件后缀名', 'wb') as f:
            image_data = requests.get(image_url, headers=headers).content
            f.write(image_data)

至此,一个简单的微信表情包爬虫就制作完成。


源码

为了大家在文章中查看代码,我这边是用图片的形式展现了,大家可以在理解之后自己去敲,也可以加我助手微信pykf20直接问她要这篇文章的源码。


各位友友,我的网盘资料是越堆越多了,尤其是小白入门Python的资料,我已经用不到了,现准备拿出来分享给大家,有需要的直接拿走。

需要的话可以找我助教,微信号pykf20,她时间比较多,备注一下"领资料",方便她知道你的来意和最快速度给你东西,细品下图:

 

 

 


转载:https://blog.csdn.net/zhiguigu/article/details/115068468
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场