Python教你打軍體拳

      網(wǎng)友投稿 730 2025-03-31

      懵逼樹(shù)上懵逼果,懵逼樹(shù)下你和我…中午吃飯時(shí)候,看到朋友圈大家開(kāi)始發(fā)建軍節(jié)的內(nèi)容,才猛地想起來(lái),今天八月一啊!感覺(jué)一天活的渾渾噩噩的,都記不清日子了。由于最近在看《大王饒命》,搞得腦回路都有點(diǎn)奇特,突然就想起初中同學(xué)的一件趣事。他媽媽當(dāng)時(shí)預(yù)產(chǎn)期是8月1號(hào),由于提前檢查了性別,知道是個(gè)男孩子,家里又是革命老兵出身,所以全家人都提前給他起好名字了叫張建軍,結(jié)果7月31號(hào)的夜里生了他,全家人免不了一場(chǎng)尷尬…第一次聽(tīng)到同學(xué)說(shuō)這個(gè)趣事就覺(jué)得好冷,然后一記就是十幾年。更有趣的是,這個(gè)同學(xué)最后還真的上了炮兵學(xué)院,成了一名軍人,哈哈。用大王饒命里面的一句對(duì)白,形容他家人當(dāng)時(shí)迎接新生命的心情:”小朋友你好,很高興見(jiàn)到你”。“不,你高興的太早了” !

      老張今天在朋友圈顯擺自己當(dāng)年參軍時(shí)候的照片,得瑟的不行。看娃當(dāng)年也是安分守己的好青年,現(xiàn)在留個(gè)大背頭,看著就不像好人。想問(wèn)他軍校學(xué)的東西,現(xiàn)在還記得么,比如軍體拳?想想今天不知道該寫(xiě)點(diǎn)什么,不如我們就來(lái)做一套軍體拳動(dòng)畫(huà),大家覺(jué)得如何!

      找了半天,找到一個(gè)插圖比較齊全的軍體拳動(dòng)作分解。一共有50多張圖的分解動(dòng)作,還起來(lái)還不錯(cuò)。

      http://www.360doc.com這個(gè)網(wǎng)站大家都知道,和百度文庫(kù)一個(gè)鳥(niǎo)樣子,復(fù)制個(gè)文本,還得登錄后才能復(fù)制,有沒(méi)有一點(diǎn)奉獻(xiàn)精神…文字都沒(méi)得復(fù)制,更別說(shuō)圖片了。

      那怎么辦?軟的不行來(lái)硬的,盤(pán)他唄!不就是幾張圖么,爬下來(lái)就完了啊…說(shuō)到這里,順嘴提一句,昨天爬抖音網(wǎng)頁(yè)版,結(jié)果因?yàn)橐恍┮魳?lè)的保存名稱(chēng)問(wèn)題,反復(fù)下載了好幾次,結(jié)果今天有些朋友想照著做一遍的時(shí)候,發(fā)現(xiàn)網(wǎng)站崩潰了,感覺(jué)有些罪過(guò)啊!

      你還別說(shuō)360doc這個(gè)網(wǎng)站還挺雞賊的,剛開(kāi)始下載圖片,居然一直提示403 Forbidden!

      看了下是免登錄的網(wǎng)站啊,沒(méi)有cookie啥的為啥會(huì)提示403 Forbidden呢,卡了半天發(fā)現(xiàn)必須要在headers中添加Referer才可以。網(wǎng)頁(yè)分析和昨天爬抖音的鏈接沒(méi)有太大區(qū)別在這里就不細(xì)講了…最終下載56張軍體拳分解動(dòng)作圖片:

      圖片下載下來(lái)了,光這么看有啥意思啊,要讓這兄弟操練起來(lái)才對(duì)啊!那么我們?cè)撊绾巫屵@些圖片動(dòng)起來(lái)呢?其實(shí)很簡(jiǎn)單,使用from PIL import Image即可!但要注意一點(diǎn),大家可以看到,13 14等幾張圖明顯很窄,這樣直接去合成的圖片,根本沒(méi)法看,所以在合成的同時(shí),統(tǒng)一調(diào)整圖片尺寸,代碼如下:

      def composite_gif(self):

      _images = []

      # 創(chuàng)建初始圖片

      base_im = Image.open(images_list[0])

      # 獲取圖片尺寸

      Python教你打軍體拳

      _picture_size = base_im.size

      for file in images_list[1:]:

      im = Image.open(file)

      if im.size != _picture_size:

      # 調(diào)整尺寸

      im = im.resize(_picture_size)

      _images.append(im)

      gif = os.path.join(path, "juntiquan.gif")

      base_im.save(gif, save_all=True, loop=True, append_images=_images, duration=300)

      簡(jiǎn)單說(shuō)明下,我們先將第一張圖片作為基礎(chǔ)圖例,并獲取他的圖片尺寸,之后所有的圖片按照這個(gè)尺寸進(jìn)行調(diào)整大小,把這些二進(jìn)制的圖片數(shù)據(jù)存儲(chǔ)在一個(gè)list,當(dāng)最后保存圖片時(shí),選擇save_all = True, loop=True, append_images=_images幾個(gè)參數(shù),將圖片全部保存,duration是圖片間隔時(shí)長(zhǎng),單位是毫秒哦!

      # -*- coding: utf-8 -*-

      # @Author ? : 王翔

      # @JianShu ?: 清風(fēng)Python

      # @Date ? ? : 2019/8/1 23:53

      # @Software : PyCharm

      # @version ?:Python 3.7.3

      # @File ? ? : JunTiQuan.py

      import os

      import requests

      from bs4 import BeautifulSoup

      from PIL import Image

      class JunTiQuan:

      def __init__(self):

      self.headers = {

      "Referer": url,

      'Connection': 'keep-alive',

      'user-agent': ('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 '

      '(KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36')

      }

      self.path = self.image_path()

      self.images_list = list()

      @staticmethod

      def image_path():

      """

      獲取代碼執(zhí)行目錄,并在目錄下創(chuàng)建Music文件夾

      :return 圖片下載文件夾

      """

      base_dir = os.path.dirname(os.path.abspath(__file__))

      _path = os.path.join(base_dir, "Images")

      if not os.path.exists(_path):

      os.mkdir(_path)

      return _path

      def get_request(self, url):

      """

      封裝requests.get方法

      如果為網(wǎng)頁(yè)請(qǐng)求,返回網(wǎng)頁(yè)內(nèi)容

      否則,解析圖片地址,并返回圖片二進(jìn)制內(nèi)容

      :param url: 請(qǐng)求url(分網(wǎng)頁(yè)、圖片兩類(lèi))

      :return: 網(wǎng)頁(yè)內(nèi)容 & 圖片二進(jìn)制文件

      """

      r = requests.get(url, headers=self.headers, timeout=5)

      if url.endswith('html'):

      return r.text

      else:

      return r.content

      def download_images(self, html):

      """

      解析軍體拳圖片

      :param html: 網(wǎng)頁(yè)內(nèi)容

      """

      soup = BeautifulSoup(html, 'lxml')

      # 根據(jù)關(guān)鍵字onclick查找每個(gè)-

      for num, img in enumerate(soup.findAll('img', attrs={'fcksavedurl': True}), start=1):

      img_bytes = self.get_request(img['src'])

      image_name = '{}.png'.format(num)

      _full_name = os.path.join(self.path, image_name)

      self.images_list.append(_full_name)

      with open(_full_name, 'wb') as f:

      f.write(img_bytes)

      print("已下載 {}".format(image_name))

      def composite_gif(self):

      _images = []

      # 創(chuàng)建初始圖片

      base_im = Image.open(self.images_list[0])

      # 獲取圖片尺寸

      _picture_size = base_im.size

      for file in self.images_list[1:]:

      im = Image.open(file)

      if im.size != _picture_size:

      # 調(diào)整尺寸

      im = im.resize(_picture_size)

      _images.append(im)

      gif = os.path.join(self.path, "juntiquan.gif")

      base_im.save(gif, save_all=True, loop=True, append_images=_images, duration=300)

      def run(self):

      html = self.get_request(url)

      self.download_images(html)

      self.composite_gif()

      if __name__ == '__main__':

      url = 'http://www.360doc.com/content/16/0601/13/33121396_564170382.shtml'

      main = JunTiQuan()

      main.run()

      來(lái)一起看看最終生成的動(dòng)圖效果吧:

      小伙子打得不錯(cuò)啊,明天我是不是要@一下老張,讓他給我們錄個(gè)軍體拳的視頻,看看是不是真材實(shí)料,哈哈。

      OK,今天的內(nèi)容就到這里,如果覺(jué)得內(nèi)容對(duì)你有所幫助,歡迎點(diǎn)擊文章右下角的“在看”。

      期待你關(guān)注我的公眾號(hào)清風(fēng)Python,如果覺(jué)得不錯(cuò),希望能動(dòng)動(dòng)手指轉(zhuǎn)發(fā)給你身邊的朋友們。

      希望每周一至五清晨的7點(diǎn)10分,都能讓清風(fēng)Python的知識(shí)文章叫醒大家!謝謝……

      -----------------

      本文轉(zhuǎn)自王翔|清風(fēng)Python

      python

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:工作表中的sheet1、sheet2、sheet3 不顯示怎么操作顯示出來(lái)(工作表中的公式包含一個(gè)或多個(gè)無(wú)效引用)
      下一篇:怎么在wps表格中設(shè)置自動(dòng)調(diào)整行高?(wps文檔表格怎么自動(dòng)調(diào)整行高)
      相關(guān)文章
      国产亚洲综合精品一区二区三区| 亚洲老熟女五十路老熟女bbw| 无码一区二区三区亚洲人妻| 亚洲精品午夜国产va久久| 久久国产精品亚洲一区二区| 亚洲午夜无码久久久久| 色噜噜AV亚洲色一区二区| 国产午夜亚洲精品国产成人小说| 亚洲综合国产精品第一页| 精品亚洲一区二区三区在线观看| 激情97综合亚洲色婷婷五| 亚洲色成人WWW永久网站| 亚洲精品无码久久久久| 亚洲AV日韩AV永久无码久久| 亚洲人成网www| 亚洲精品国产福利片| 精品久久久久久亚洲精品| 亚洲AV成人影视在线观看| 亚洲精品无码专区| 亚洲AⅤ无码一区二区三区在线| 日韩精品电影一区亚洲| 国产成人亚洲精品91专区手机| 伊人亚洲综合青草青草久热| 亚洲AV永久无码精品一百度影院| 亚洲Aⅴ无码专区在线观看q| 中文字幕亚洲精品| 久久精品国产亚洲αv忘忧草| 亚洲午夜无码久久| 亚洲高清无码在线观看| 国产亚洲日韩一区二区三区| 久久久亚洲欧洲日产国码农村| 亚洲黄色中文字幕| 男人天堂2018亚洲男人天堂| 亚洲AV无码AV男人的天堂不卡| 国产尤物在线视精品在亚洲| 国产成人麻豆亚洲综合无码精品| 久久精品国产亚洲av成人| 亚洲欧洲另类春色校园小说| 亚洲日韩一区二区三区| 亚洲AV无码乱码在线观看| 国产亚洲一区二区三区在线|