聊天没有表情包被嘲讽,用python爬取了十万张表情包
Python 没有 聊天 爬取 表情 十万
2023-09-14 09:04:32 时间
前言
事情要从几天前说起,我有一个朋友,他在和他喜欢的小姐姐聊天时,聊天的气氛一直非常尬,这时他就想发点表情包来缓和一下气氛,但一看自己的表情包收藏都是这样的。
这发过去,基本就直接和小姐姐说拜拜了,然后他就向我求救问我有没有表情包,表情包我是没有,但网站有呀,来来,爬虫整起。
分析页面
今天爬取的网站是斗图吧,有一说一表情包是真的多,看这惊人的页数
接下来就该看看怎么拿到表情包图片的url了,首先打开谷歌浏览器,然后点F12进入爬虫快乐模式
然后完成下图的操作,先点击1号箭头,然后再选中一个表情包即可,红色框中就是我们要爬取的对象,其中表情包的src就在里面
现在我们就搞清楚了怎么拿到表情包的url了,就开始写代码了
具体实现
解析页面
获取网页内容
这里就是获取爬取网页的信息
def askURL(url):
head = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36"
}
req = urllib.request.Request(url=url, headers=head)
html = ""
try:
response = urllib.request.urlopen(req)
html = response.read()
except Exception as result:
print(result)
return html
解析网页内容
# 取出图片src的正则式imglink = re.compile(
r'<img alt="(.*?)" class="img-responsive lazy image_dta" data-backup=".*?" data-original="(.*?)" referrerpolicy="no-referrer" src=".*?"/>',
re.S)def getimgsrcs(url):
html = askURL(url)
bs = BeautifulSoup(html, "html.parser")
names = []
srcs = []
# 找到所有的img标签
for item in bs.find_all('img'):
item = str(item)
# 根据上面的正则表达式规则把图片的src以及图片名拿下来
imgsrc = re.findall(imglink, item)
# 这里是因为拿取的img标签可能不是我们想要的,所以匹配正则规则之后可能返回空值,因此判断一下
if (len(imgsrc) != 0):
imgname = ""
if imgsrc[0][0] != '':
imgname = imgsrc[0][0] + '.' + getFileType(imgsrc[0][1])
else:
imgname = getFileName(imgsrc[0][1])
names.append(imgname)
srcs.append(imgsrc[0][1])
return names, srcs
到现在为止,已经拿到了所有的图片的链接和名字,那么就可以开始下载了
文件下载
多线程下载
因为文件实在有点多,所以最好采用多线程的方式下载,我这里只是给了一个样例,大家按照这个逻辑写一下就好
pool = ThreadPoolExecutor(max_workers=50)
for j in range(len(names)):
pool.submit(FileDownload.downloadFile, urls[j], filelocation[j])
成果
总共是爬了十万多张表情包,这次咱也是表情包大户了图片
作为一个IT的过来人,我分享的都是一些自己的学习方法和干货。
最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
四、实战案例
五、面试资料
最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。
相关文章
- Python怎么输入小数和整数_python输入非负整数
- 如何为pycharm配置Python解释器_pycharm选择python解释器
- 聊天没有表情包被嘲讽,程序员直接用python爬取了十万张表情包[通俗易懂]
- python人工智能学习笔记_[Python] 人工智能与自然语言处理学习笔记(1)[通俗易懂]
- 【Python】解决使用 plt.savefig 保存图片时一片空白
- python安装不了whl文件_Python安装whl文件过程图解
- Python安装whl文件之坑「建议收藏」
- 【python】Excel转json「建议收藏」
- 【说站】python绘制散点图的两种方法
- 用Python批处理指定数据-以WRF输出结果为例演示按照指定维度合并(附示例代码)
- 永久设置python清华镜像源_清华开源镜像站怎么用
- python – 获取时间戳(10位和13位)「建议收藏」
- 正则表达式Python_python正则表达式匹配字符串
- python绘制条形柱状图_Python柱状图
- 利用Python进行数据分析笔记
- 下个10年,Go能取代Python成为开发者的首选语言吗?
- 百度语音识别API的python使用示例详解编程语言
- Linux创建Python文件的步骤(linux新建python文件)
- Python输出函数print()总结(python print())详解编程语言
- python工具——Py-Spy详解编程语言
- 使用Python操作MySQL数据库快速上手(python访问mysql数据库)
- Linux查看Python安装路径的方法(linux查看python安装路径)
- 为什么 Python 代码要写得美观而明确
- 对 Python 开发者而言,IPython 仍然是 Jupyter Notebook 的核心
- Python轻松连接SQL Server数据库(python连接sqlserver)