Python “520+1”的照片墙

这篇文章是怎么来的呢,那就说来话长了,不过动机就是给喜欢的ta的。刚过520就拿出来分享一下。希望给在找如何给ta制造感动的你一下灵感吧!

#首先导入模块
import random
import PIL.Image    #用来读取图片,需要额外下载
import os
import requests     #为了写爬虫而准备的
import json
if __name__ == '__main__':
"""我们要将爬虫爬到的图片存在这个文件夹里,这里先创建文件夹,方面后面函数调用时不会报错"""os.makedirs('祝你快乐/', exist_ok=True)
"""这里的例子是以seventeen韩国男团为对象进行照片爬取"""headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) \Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362','Referer': 'https://www.baidu.com/?tn=18029102_3_dg'}#这里的headers请自行更改print('数据获取需要时间,请耐心等待……')pictureSpider()#先爬取图片happyGirl()    #然后生成照片墙

这里用到的爬虫是爬取百度图片的,如有需要自行定制,可参考我之前的博客。

def downloads(url):name = url.split('/')[-1]response = requests.get(url, headers=headers)with open('祝你快乐/{}'.format(name), 'wb')as f:f.write(response.content)# print(url+'下载成功')def get_detail_url():pic_urls = []for i in range(31):index = i * 30if index == 180:continueurl = 'http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592\
&is=&fp=result&queryWord=seventeen&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=\
&copyright=&word=seventeen&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=1&fr=&expermode=&force=&pn={}&rn=30'.format(index)try:response = requests.get(url, headers=headers)if len(response.text) > 5000:data = json.loads(response.text, strict=False)thumb_urls = []for i in range(6):thumb_url = data['data'][i]['thumbURL']thumb_urls.append(thumb_url)pic_urls.extend(thumb_urls)else:continueexcept:continuereturn pic_urlsdef pictureSpider():pic_urls = get_detail_url()for url in pic_urls:downloads(url)

这里直接贴代码,我也不解释,因为是之前做过的东西,就是一个百度图片爬虫的代码。
重头戏——最关键的部分来了,如何生成这个照片墙呢,怎么布局呢?

def happyGirl():# 定义图形——这个图形实际上就是一个爱心形figure = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],]# 图片尺寸 像素PIC_WIDTH, PIC_HEIGHT = 100, 100# 行数  列数row_num, column_num = len(figure), len(figure[0])# 读取照片名 image_names = os.listdir("祝你快乐/")# 背景读取 设置尺寸img = PIL.Image.open("祝你快乐/" + random.choice(image_names)).resize((column_num * PIC_WIDTH, row_num * PIC_HEIGHT))#其中random.choice就是用来随机选择图片作为背景图的#print(img, image_names)for row in range(row_num):for column in range(column_num):if figure[row][column]:pic = PIL.Image.open("祝你快乐/" + random.choice(image_names)).resize((PIC_WIDTH, PIC_HEIGHT))img.paste(pic, (PIC_WIDTH * column, PIC_HEIGHT * row))#在指定的位置粘贴上图片img.save("祝你快乐/like.png")#保存图片墙img.show()#展示图片墙

你可以根据自己的需要更改图形矩阵figure,各类参数
贴出几张成图吧:




听说只有点了赞的人才能生成好看的照片墙哦!可能公众号看多了,说起话来都有内味了……

Python “多爱你一点”照片墙相关推荐

  1. access和python哪个难学-access和python学哪个好一点

    access和python学哪个好一点 发布时间:2020-10-23 20:11:42 来源:亿速云 阅读:97 作者:小新 这篇文章给大家分享的是有关access和python学哪个好一点的内容. ...

  2. 用python做头像_如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  3. python表白代码照片墙-如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  4. python语音输入功能_“在Python中如何实现一点按钮就出现语音输入语音,输入语音后可以自动翻译为文字的程序?“python语音识别教程...

    Python用什么模块开发语音识别系统 使用YQ5969,这个语音识别模以支持1--8个咪头,还可以支持本地和识别不同需求.5米内本地识别 93%以上,云端识别率97%.这个语音识别模块可以滤除噪声. ...

  5. python画一个心形照片墙怎么摆_柚子教大家如何用python做精美的照片墙!五分钟学会get新技能...

    在朋友圈中你肯定会见到过下面这样的照片,由数张照片拼接成一张具有规则图案形状的照片墙. 其实这样的一张照片也可以用 Python 实现,主要用到的是 python 中的 Image 库:制作之前需要一 ...

  6. python画一个心形照片墙_表白神器!如何使用 Python 绘制爱心墙!

    一.爱心墙 通过爬虫搜集到粉丝的头像,然后利用 PIL 库拼接出爱心墙的形状 二.代码分析 1.头像爬取 在个人中心点击我的粉丝便可以看到自己的粉丝 通过抓包可知对应的接口为:url = 'https ...

  7. 表白神器!教你如何使用 Python 绘制爱心墙获取芳心!

    一.爱心墙 通过爬虫搜集到粉丝的头像,然后利用 PIL 库拼接出爱心墙的形状 二.代码分析 1.头像爬取 在个人中心点击我的粉丝便可以看到自己的粉丝 通过抓包可知对应的接口为: > url =' ...

  8. python 爱心背景_表白神器!如何使用 Python 绘制爱心墙!

    一.爱心墙 通过爬虫搜集到粉丝的头像,然后利用 PIL 库拼接出爱心墙的形状 二.代码分析 1.头像爬取 在个人中心点击我的粉丝便可以看到自己的粉丝 通过抓包可知对应的接口为: url = 'http ...

  9. python将后宫佳丽三千做成照片墙

    上一篇文字用python爬取后宫佳丽三千,我们爬取了很多小姐姐,太多了怎么办,没事,直接做成照片墙,我全都要 效果图: 项目结构: 完整代码: from PIL import Image, Image ...

最新文章

  1. 摧枯拉朽,说说ES6的三把火
  2. Python使用matplotlib可视化Treemap图、treemap将分层数据显示为一组嵌套矩形,每一组都用一个矩形表示,该矩形的面积与其值成正比(Treemap)
  3. 查看网站上保存的密码
  4. 【知识总结】Java类初始化顺序说明
  5. 浅析webrtc中音频的录制和播放流程
  6. 基于pygtk的linux有道词典
  7. ubuntu自动保存git账号和密码
  8. Caffe阅读代码并修改
  9. 第五十一期:互联网不如国企,去BAT的程序员都是diao丝?
  10. jumpserver 使用教程_Jumpserver之快速入门
  11. Segment Tree Beats 区间最值问题
  12. iQOO Pro 5G版今日正式开售:售价最亲民的5G旗舰
  13. kibana从入门到精通-Kibana配置详解
  14. 2.Jenkins 权威指南 --- 配置Jenkins 服务器
  15. 基于74hc573的数码管模块测试
  16. 于的繁体字有几种写法_仙字繁体(仙的繁体字几种写法)
  17. 最小的 中文 linux,麻雀虽小五脏俱全 最小Linux系统试用
  18. Ubuntu 无法连接网络
  19. fat,fat32,ntfs,ext2,ext3等 文件系统说明
  20. 什么是线程线程和进程的区别

热门文章

  1. 读《茶树冷胁迫的全局基因表达谱》
  2. 江民KV2007离线包和安装包下载
  3. 《scikit-learn机器学习》决策树③ -泰坦尼克号幸存者预测【思路+代码】
  4. csr8811蓝牙芯片porting总结
  5. MySQL 大量sleeping before entering InnoDB 故障诊断
  6. 论文笔记 Dependent Gaussian Processes 相关高斯过程
  7. 蓝桥杯scratch编程题(2)
  8. VUEX和filer过滤器的定义
  9. 苹果对抗FBI 自由与限制的百年难题
  10. matlab斜杠日期,日期用斜线怎么写