小伤口 发表于 2021-3-11 18:40:58

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:}

小伤口 发表于 2021-3-11 18:48:49

自占沙发

hrp 发表于 2021-3-11 18:53:55

大佬{:10_254:}

小伤口 发表于 2021-3-11 18:57:07

hrp 发表于 2021-3-11 18:53
大佬

过奖了{:10_250:}
每次都支持,谢谢大佬
感动无比{:10_266:}

昨非 发表于 2021-3-11 19:12:31

棒!

小伤口 发表于 2021-3-11 19:19:13

昨非 发表于 2021-3-11 19:12
棒!

谢谢大佬
谢谢鼓励{:10_266:}

yuedong 发表于 2021-3-11 19:32:46

{:7_123:}插眼,学到这里后我也要试试

小伤口 发表于 2021-3-11 19:40:32

yuedong 发表于 2021-3-11 19:32
插眼,学到这里后我也要试试

{:10_257:}好嘞

yayc_zcyd 发表于 2021-3-11 20:02:42

厉害,pygame感觉挺强大的

小伤口 发表于 2021-3-11 22:05:29

yayc_zcyd 发表于 2021-3-11 20:02
厉害,pygame感觉挺强大的

还好{:10_323:}

nahongyan1997 发表于 2021-3-12 08:09:10

大佬大佬

19924269098 发表于 2021-3-12 09:24:41

666

1406598279 发表于 2021-3-12 17:53:36

666

ynqj 发表于 2021-3-12 22:31:20

我最近准备写超级玛丽{:10_256:}

小伤口 发表于 2021-3-12 22:55:01

ynqj 发表于 2021-3-12 22:31
我最近准备写超级玛丽

可以啊
加油!!!{:5_106:}

yayc_zcyd 发表于 2021-3-12 23:07:56

真巧了,我也在搞超级玛丽{:10_256:}

小伤口 发表于 2021-3-12 23:47:18

yayc_zcyd 发表于 2021-3-12 23:07
真巧了,我也在搞超级玛丽

好耶!
真想看看{:10_297:}

叼辣条闯世界 发表于 2021-3-13 15:49:38

666

han125416866 发表于 2021-3-13 17:05:33

{:10_254:}{:10_254:}{:10_254:}

soljax 发表于 2021-3-13 21:23:41

66666666666666666666666666666666666666
页: [1] 2 3
查看完整版本: pygame——不仅仅是写游戏