今年支付宝的集福字就靠这个了,天天不重样
前言
2022 虎年大吉,共迎新春,新的一年,我希望通过”万虎“拼福字以及”万福“拼萌虎的方式,给大家带来好运,祝大家虎虎生威,顺风顺水,人生如意,财源滚滚!恭喜完了,下面就要亮技术了~
一、爬取福虎
通过 Python 爬虫技术,我们可以很方便快捷的从百度图片爬取到大量虎和福的图片,下面演示一下如何爬取:
1、网站分析
首先,我们打开百度图片,F12 打开控制台,然后搜索一个 ”虎年“,点击图片:
在滑动鼠标加载更多图片的同时,我们查看控制台中输出的内容,可以发现有很多数据包:
这里随便选择一条,并复制这个数据包的 URL 请求:
https://image.baidu.com/search/acjson?tn=resultjson_com&logid=11365856357363949053&ipn=rj&ct=201326592&is=&fp=result&fr=&word=%E8%99%8E%E5%B9%B4&queryWord=%E8%99%8E%E5%B9%B4&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=©right=&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&expermode=&nojc=&isAsync=&pn=120&rn=30&gsm=78&1642056713314=
点开这个 URL 看到其携带的参数,复制这一段:
tn: resultjson_com
logid: 11365856357363949053
ipn: rj
ct: 201326592
is:
fp: result
fr:
word: 虎年
queryWord: 虎年
cl: 2
lm: -1
ie: utf-8
oe: utf-8
adpicid:
st: -1
z:
ic: 0
hd:
latest:
copyright:
s:
se:
tab:
width:
height:
face: 0
istype: 2
qc:
nc: 1
expermode:
nojc:
isAsync:
pn: 120
rn: 30
gsm: 78
1642056713314:
至此,我们已经获取到所需的代码,分析结束!
2、爬取代码
关于代码编写部分的详细步骤我就不做描述了,以下分享下主要源码:
import requests
import os
from lxml import etree
path = r"/Users/lpc/Downloads/baidu1/"
# 判断目录是否存在,存在则跳过,不存在则创建
if os.path.exists(path):pass
else:os.mkdir(path)page = input('请输入要爬取多少页:')
page = int(page) + 1
header = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
}
n = 0
pn = 1
# pn是从第几张图片获取 百度图片下滑时默认一次性显示30张
for m in range(1, page):url = 'https://image.baidu.com/search/acjson?'param = {'tn': 'resultjson_com','logid': '7680290037940858296','ipn': 'rj','ct': '201326592','is': '','fp': 'result','queryWord': '虎年','cl': '2','lm': '-1','ie': 'utf-8','oe': 'utf-8','adpicid': '','st': '-1','z': '','ic': '0','hd': '1','latest': '','copyright': '','word': '虎年','s': '','se': '','tab': '','width': '','height': '','face': '0','istype': '2','qc': '','nc': '1','fr': '','expermode': '','nojc': '','acjsonfr': 'click','pn': pn, # 从第几张图片开始'rn': '30','gsm': '3c','1635752428843=': '',}page_text = requests.get(url=url, headers=header, params=param)page_text.encoding = 'utf-8'page_text = page_text.json()print(page_text)# 先取出所有链接所在的字典,并将其存储在一个列表当中info_list = page_text['data']# 由于利用此方式取出的字典最后一个为空,所以删除列表中最后一个元素del info_list[-1]# 定义一个存储图片地址的列表img_path_list = []for i in info_list:img_path_list.append(i['thumbURL'])# 再将所有的图片地址取出,进行下载# n将作为图片的名字for img_path in img_path_list:img_data = requests.get(url=img_path, headers=header).contentimg_path = path + str(n) + '.jpg'with open(img_path, 'wb') as fp:fp.write(img_data)n = n + 1pn += 29
以上方式可以实现爬取百度图片,但是每次都要去分析爬取,比较麻烦且不智能,因此再分享一个运行后只需要输入关键词 “虎年” 即可爬取的源码:
# -*- coding:utf-8 -*-
import requests
import re, time, datetime
import os
import random
import urllib.parse
from PIL import Image # 导入一个模块imgDir = r"/Volumes/DBA/python/img/"
# 设置headers 为了防止反扒,设置多个headers
# chrome,firefox,Edge
headers = [{'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36','Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2','Connection': 'keep-alive'},{"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0','Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2','Connection': 'keep-alive'},{"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.19041','Accept-Language': 'zh-CN','Connection': 'keep-alive'}
]picList = [] # 存储图片的空 Listkeyword = input("请输入搜索的关键词:")
kw = urllib.parse.quote(keyword) # 转码# 获取 1000 张百度搜索出来的缩略图 list
def getPicList(kw, n):global picListweburl = r"https://image.baidu.com/search/acjson?tn=resultjson_com&logid=11601692320226504094&ipn=rj&ct=201326592&is=&fp=result&queryWord={kw}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=©right=&word={kw}&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=1&fr=&expermode=&force=&cg=girl&pn={n}&rn=30&gsm=1e&1611751343367=".format(kw=kw, n=n * 30)req = requests.get(url=weburl, headers=random.choice(headers))req.encoding = req.apparent_encoding # 防止中文乱码webJSON = req.textimgurlReg = '"thumbURL":"(.*?)"' # 正则picList = picList + re.findall(imgurlReg, webJSON, re.DOTALL | re.I)for i in range(150): # 循环数比较大,如果实际上没有这么多图,那么 picList 数据不会增加。getPicList(kw, i)for item in picList:# 后缀名 和名字itemList = item.split(".")hz = ".jpg"picName = str(int(time.time() * 1000)) # 毫秒级时间戳# 请求图片imgReq = requests.get(url=item, headers=random.choice(headers))# 保存图片with open(imgDir + picName + hz, "wb") as f:f.write(imgReq.content)# 用 Image 模块打开图片im = Image.open(imgDir + picName + hz)bili = im.width / im.height # 获取宽高比例,根据宽高比例调整图片大小newIm = None# 调整图片的大小,最小的一边设置为 50if bili >= 1:newIm = im.resize((round(bili * 50), 50))else:newIm = im.resize((50, round(50 * im.height / im.width)))# 截取图片中 50*50 的部分clip = newIm.crop((0, 0, 50, 50)) # 截取图片,crop 裁切clip.convert("RGB").save(imgDir + picName + hz) # 保存截取的图片print(picName + hz + " 处理完毕")
演示一下此种方式,运行后输入 “虎年” 回车等待下载完成即可:
以上就是爬取百度图片的源码,分别爬取 “福” 和 “虎” 之后,我们就可以开始万图成像啦!
二、万图成像
万图成像很简单,之前我也写过一篇类似的文章有介绍过:Python 批量爬取猫咪图片实现千图成像 ,可以参考一下!
效果图
下面直接上传我们拼好的效果图:
三、我用SQL写福字
SQL如下:
create table LuciferFu(fu_line varchar2(128));
insert into LuciferFu values('22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222'),
('22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222'),
('22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222'),
('22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222'),
('2222222222222222222222222222222222222222222222222222222222222222222222222/[[ .\2222222222222222222222222222222222'),
('2222222222222222222222222222222222222222222222222222222222222222222/[. ,2222222222222222222222222222222'),
('222222222222222222222222/2[222222222222222222222222222222222222` \22222222222222222222222222222'),
('222222222222222222222222^ ,\2222222222222222[` =2222222222222222222222222222'),
('2222222222222222222222222 \22222222/2[ \2222222222222222222222222222'),
('2222222222222222222222222 22222\ ]22222222222222222222222222222'),
('2222222222222222222222222^ \2222 .]/22222222222222222222222222222222'),
('22222222222222222222222222 2222` .,,]]/2222222222222222222222222222222222222222'),
('222222222222222222222222222 \2222] ,/2/,/222222222222222222222222222222222222222222222222222222'),
('2222222222222222222222222222 .22222222`/222222222222222222222222222222222222222222222222222222222'),
('22222222222222222222222222222. ,\2222\`/222222222222222222[. ..[22222222222222222222222222222'),
('2222222222222222222222222222` =222^ 2222222222222[` ,2222222222222222222222222222'),
('22222222222222222222222222^ ]2\]` =2` 2222222/` 2222222222222222222222222222'),
('222222222222222222222222/ /22222222\` ,]222` ,2[` =2222222222222222222222222222'),
('2222222222222222222222/ /2222222222222222222222^ ,22222222222222222222222222222222'),
('222222222222222222222^ ,/2222222[` ,[[[\2222222. .]/22^ /222222222222222222222222222222222'),
('2222222222222222222/ ,/222222/` ,22222 ,]]]222222` =2222222222222222222222222222222222'),
('222222222222222222`,2222222/[ /222^ ,22222222/` [2222222222222222222222222222222222'),
('2222222222222222^ /22222222^ /222/ 222222[ ,2222222222222222222222222222222'),
('22222222222222/ ,222222222` 22^ ,22/ /2222222222222222222222222222222'),
('2222222222222/./2222222` ,22^ ]/22222222222222222222222222222222'),
('222222222222./222222[ /22` =^ ,222222222222222222222222222222222222'),
('2222222222/,22222[ ,,/ .2^ ,]/22222222222222222222222222222222222222222'),
('22222222/./22[. ` 22^ .]22222222222222222222/[[[[[\2222222222222222222222'),
('22222/` 222^ 2222222222222222[[. [\22222222222222222'),
('22222 /2 22222. =22222222[` ,222222222222222'),
('2222^ /22/ =22222\ =2[` ,2222222222222'),
('2222\ ,]22222 2222222` .222222222222'),
('222222\]]]]`]]\/222222222` ,222222222 ]/222\/2222\2/]` ,22222222222'),
('222222222222222222222222` /[22222222/ 2222222222222222\ /22222222222'),
('22222222222222222222222^ ,` ,22222^ . =2/`,`[,[[\222222\ \22222222222'),
('2222222222222222222222^ ,/2^ ,222]. .]]222^ . ,222 222222222222'),
('222222222222222222222/. /222^ ,2222222222222222 =2^ .222222222222'),
('222222222222222222222. 22222. =222222222222/` =22. ,222222222222'),
('22222222222222222222^ .222222. .22222222/[ ,`=22 =222222222222'),
('2222222222222222222^.. .. . .\22222^ ,2222[. ]2222^. .2222222222222'),
('22222222222222222/..... ..2222222`. . . ,^ . . ]\/222222. =2222222222222'),
('22222222222222222........... . ....22222222... . .. ,` .. . ... .. . .. .222222222^ ... .22222222222222'),
('2222222222222222`................ .\2222222^ ... ............,/22^...... ../222222222222.............=22222222222222'),
('22222222222222022`..................,\2222222`.........,\]]22222`........../222222222222^.............222222222222222'),
('2222222222222222^...................222222222..........=2222/.,`.....................\2.............=222222222222222'),
('222222222222222222.]22222..........,2222222222..........2/]222......................................2222222222222222'),
('2222222222222222222222222..........,2222222222^..........`.........................................,2222222222222222'),
('2222222222222222222222222^.........=22222222222^...................................................22222222222222222'),
('2222222222222222222222222^.........=222222222222\.................................................222222222222222222'),
('2222222222222222222222222^.*........=222222222222\...................,]]]/22222\...............,22222222222222222222'),
('2222222222222222222222222^...*....../2222222222222\.......]/22222222222222222222\...*..*.....,2222222222222222222222'),
('22222222222222222222222222......**]/2222222222222222\**,]2222222222222222222222222`.......,2222222222222222222222222'),
('22222222222222222222222222\/2\22222222222222222222222222222222222222222222222222222222222222222222222222222222222222'),
('22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222'),
('22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222'),
('22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222'),
('22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222');
效果图:
select * from LuciferFu;
感兴趣的朋友可以自己试试,玩转虎年!
今年支付宝的集福字就靠这个了,天天不重样相关推荐
- 支付宝扫描集福福字大全 39个
00个福满足小伙伴们各种集福要求. 来自https://qilitech.cn/doc/view?newsId=6aa26975a88a45d2b4117070936efff8
- 支付宝高效集福神器来了!!!
一年一度的支付宝五福活动又来了,虽然钱数不多,但是已经成为了大家每年必参加的活动,然而每天手工扫福也是个费时间的工作,我们这里提供了集福神器,快速提升集福效率,妈妈再也不用担心我扫不到福了!!! 扫码 ...
- 2920集五福_2019支付宝集五福字新玩法,高概率出敬业福攻略。
还是熟悉的配方,还是熟悉的味道.今天(2019年1月25日)凌晨,集五福活动正式开启,支付宝客户端首页也更新了大大的"集五福"入口.据介绍,今年的支付宝集五福活动将保留了去年几乎被 ...
- Php集福程序,2021 支付宝“集福”最全攻略,这样操作更快得“福”!
" 啪 " 的一声,转眼又到了一年一度的支付宝集五福活动了.今年的支付宝集五福活动将从 2 月 1 日 0 点开始到 2021 年 2 月 11 日结束,于 2 月 11 日当晚 ...
- 支付宝集福攻略,作为程序员的你集福了么?
哇哦 一年一度的支付宝集五福活动 又双叒上线啦~ 2022年的支付宝集五福 在1月19日零点已经正式开始 最终在除夕夜 也就是1月31日22点18分开奖 合成五福可以获得红包奖励 虽然去年我只拿到了2 ...
- 轻松集福,支付宝集五福活动完整攻略
2019支付宝集五福活动正式开启了,从1月25日到2月4日除夕,用户可以在这段时间内收集五福卡,除夕当晚会随机瓜分5亿现金红包. 1,正常集福流程 只要打开支付宝最新版,就可以在首页看到集五福入口,用 ...
- 5福最多多少钱_个人最高666元!2018年支付宝扫福最新福字图片 支付宝扫5福步骤...
2月5日下午消息,蚂蚁金服今日宣布,今年继续集五福给用户发红包,集五福时间为从2月6日零点开始截止2月15日零点,除夕晚22点18分开奖.今年,集五福产品玩法更加多元化.另外,支付宝红包玩法升级,推出 ...
- 支付宝“集福”第六年,掀起新年社交营销新浪潮
从2016年开始,支付宝每年都会在春节期间推出"扫五福"活动,迄今为止已经是第六年时间,"集五福"逐渐成为人们必不可少的新年俗. 01 多平台集福引发全民参与 ...
- 如何利用支付宝集福(敬业福)引流
没有开头对白,废话不多说,直接来干货! 关键字: 1.支付宝红包 2.支付宝集福 3.微信红包 4.百度钱包 5.百度红包 6.敬业福 这是最近7天关于红包大战的搜索指数. 结论: 1.搜索支付宝集福 ...
最新文章
- oracle 数据有引号,oracle插入字符串数据时字符串中有'单引号问题
- Android AdapterView 源码分析以及其相关回收机制的分析
- 「BZOJ 2152」聪聪可可
- java梅森素数_JAVA基础 第三篇:梅森数、梅森素数、伪素数——素数与指数的完美结合与进阶...
- CodeForces - 967D Resource Distribution(贪心+二分+构造)
- 这个神奇的库,可以将数据平滑化并找到异常点
- 论文学习21-Globally Normalized Transition-Based Neural Networks(2016,标签偏差问题
- 2020年 Google 开发者大会可以预约了
- sql server存阿拉伯语变成问号_【server@geoserver】WFS只读(readonly)解决办法
- Python 爬虫---(7) Python3网络爬虫快速入门实战解析
- 【机器人】四元数与旋转矩阵的转换关系
- 数据分析软件SPSS22的授权及汉化
- java nas_NAS对家庭来说有什么用处?
- 一个人运营公众号,像是一场马拉松
- 文件服务器查询重复文件,DupScout – 重复文件扫描、删除或移动的免费工具
- java学无止境-STFWnbsp;ornbsp;RTFM
- Windows Server 2019 英文语系更新笔记
- python语言表示语句结构_python基础语言以及if/while语句结构
- 高性能 MySQL实战
- linux忘记密码修改密码_如何更改我的Linux密码
热门文章
- Open-world Machine Learning: Applications, Challenges,and Opportunities || 阅读笔记
- oracle 12.1.0.2.0 通过 DBBP 升级到 12.1.0.2.190416
- 广州市光华口腔医院就诊“攻略”
- 最详细的 Android Toolbar 开发实践总结(转)
- eclipse如何建立java项目
- 土建专业计算机软件,土木工程计算机软件应用
- yum安装论坛discuz,phpwind,博客系统wordpress,后台数据库管理phpmyadmin。
- 小米Wifi放大器连接网件路由器
- 温氏股份董事长温志芬强烈推荐:《数字化转型方法论》一把解锁数字化转型的秘钥
- 扫地机器人充电插座布置_扫地机器人插座高度一般是多少