pygame——不仅仅是写游戏
本帖最后由 小伤口 于 2021-3-11 20:46 编辑==========头像大全==========
前言
往往爬取图片时,爬一堆往往也用不了那么多(MM图除外),
爬一张还不如直接下载,所以想出来了 ’在线预览‘ ,简单来说就是先爬取许多图片,并显示在界面上,退出程序时,只会保存用户选择的图片
程序虽然只是简单的爬取图片,但是如何用pygame实现实时预览图片,用pygame实现分类爬取,
实现‘在线预览’等还是有点挑战的(针对个人而言)
使用的第三方库
requests---》爬取网页
安装: pip install requests
pygame---》界面
安装:pip install pygame-1.9.6-cp38-cp38-win_amd64.whl
BeautifulSoup---》提取图片下载地址
安装:pip install bs4
pillow---》缩小图片,保存图片
安装:pip install Pillow
程序界面
使用方法
exe文件运行
1 打开dist文件夹
2 找到touxiang.exe文件双击运行
3 选择你喜欢的类别,如何保存想要的图片?使用鼠标点击想要保存的图片,照片边框出现红色时,点击保存,当程序显示保存成功,快去桌面上查看吧~,图片保存成功。
代码运行
1 打开tou_xiang文件夹,找到touxiang.py文件
2 鼠标右击打开
3 同exe文件的3步骤
注:退出程序请及时把图片保存到文件夹里哦~防止下次使用程序时,照片被替换了嘞~T_T
这里将爬取图片的代码发出来吧,有详细注释~
# 获取页面
def huo_qu(page_url):
# 加请求头
headers = {
'user-agent': ""'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Mobile Safari/537.36 Edg/89.0.774.45'}
res = requests.get(page_url, headers=headers)
return res
# 查找图片下载链接,并保存链接
def xun_zhao(res):
# 用BeautifulSoup解析
soup = BeautifulSoup(res.text,features="lxml")
img_addrs = []
# 查找所有有img的标签
for link in soup.find_all('img'):
# 找到有src属性的链接并保存
if link.get('src') not in img_addrs:
img_addrs.append(link.get('src'))
if len(img_addrs)>=16:
break
return img_addrs
# 保存图片
def bao_cun(img_addrs):
for each in img_addrs:
filename = each.split('/')[-1]
r = requests.get(each)
with open(filename, 'wb') as f:
f.write(r.content)
dizhi.append(filename)
if each==img_addrs[-1]:
caiqu = 0
for sd in dizhi[:]:
im1 = ims.open(sd)
im2 = im1.copy()
im2.thumbnail((100, 100))
baga = 'xianshi/' + str(caiqu) + '.png'
zai_xian.append(baga)
im2.save(baga)
caiqu += 1
if caiqu==16:
caiqu=0
if sd == dizhi[-1]:
caiqu = 0
# 主代码
def download_tx(temp, pages):
fenglei = {'欧美头像': 'oumei/', '清新头像': 'xiaoqingxin/', '恐怖头像': 'kongbu/', \
'可爱头像': 'keai/', '小孩头像': 'xiaohai/', '卡通头像': 'katong/', '古风头像': 'gufeng/', '搞笑头像': 'gaoxiao/'}
url = 'http://www.imeitou.com/' + fenglei
if pages == 1:#这里加判断是因为爬取的图片网站的第一页与之后的页数的网址不一样
page_url = url
res = huo_qu(page_url)
img_addrs = xun_zhao(res)
bao_cun(img_addrs)
else:
page_url = url + 'index_' + str(pages) + '.html'#拼接完整网址
res = huo_qu(page_url)
img_addrs = xun_zhao(res)
bao_cun(img_addrs)
exe文件:
**** Hidden Message *****
源代码
**** Hidden Message *****
快去设置你喜欢的头像吧~
如果喜欢请评个分吧
{:9_221:} {:9_221:} {:9_221:} 自占沙发 大佬{:10_254:} hrp 发表于 2021-3-11 18:53
大佬
过奖了{:10_250:}
每次都支持,谢谢大佬
感动无比{:10_266:} 棒! 昨非 发表于 2021-3-11 19:12
棒!
谢谢大佬
谢谢鼓励{:10_266:} {:7_123:}插眼,学到这里后我也要试试 yuedong 发表于 2021-3-11 19:32
插眼,学到这里后我也要试试
{:10_257:}好嘞 厉害,pygame感觉挺强大的 yayc_zcyd 发表于 2021-3-11 20:02
厉害,pygame感觉挺强大的
还好{:10_323:} 大佬大佬 666 666 我最近准备写超级玛丽{:10_256:} ynqj 发表于 2021-3-12 22:31
我最近准备写超级玛丽
可以啊
加油!!!{:5_106:} 真巧了,我也在搞超级玛丽{:10_256:} yayc_zcyd 发表于 2021-3-12 23:07
真巧了,我也在搞超级玛丽
好耶!
真想看看{:10_297:} 666 {:10_254:}{:10_254:}{:10_254:} 66666666666666666666666666666666666666