成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python爬蟲之足球小將動(dòng)漫(圖片)下載

tolerious / 1781人閱讀

摘要:本屆世界杯中,在日本與比利時(shí)的比賽中,日本球迷們高舉隊(duì)長(zhǎng)小翼的畫面就足以證明這部動(dòng)漫對(duì)日本足球的深遠(yuǎn)影響。本文將介紹如何利用爬蟲來下載足球小將的動(dòng)漫圖片。

??盡管俄羅斯世界杯的熱度已經(jīng)褪去,但這屆世界杯還是給全世界人民留下了無數(shù)難忘的回憶,不知你的回憶里有沒有日本隊(duì)的身影?本次世界杯中,日本隊(duì)的表現(xiàn)讓人眼前一亮,很難想象,就是這樣一只隊(duì)伍,二十幾年還是我們國(guó)家足球隊(duì)的水平一樣,也許還不如我們國(guó)足呢。
??足球小將(隊(duì)長(zhǎng)小翼、キャプテン翼)由日本著名動(dòng)漫家高橋陽一于1981年開始連載,從此這部動(dòng)漫就伴隨著一代又一代的日本,甚至全世界的少年兒童成長(zhǎng),也在無形有形中促進(jìn)了日本足球的進(jìn)步。本屆世界杯中,在日本與比利時(shí)的比賽中,日本球迷們高舉隊(duì)長(zhǎng)小翼的畫面就足以證明這部動(dòng)漫對(duì)日本足球的深遠(yuǎn)影響。
??本文將介紹如何利用Python爬蟲來下載足球小將的動(dòng)漫圖片。
??首先,我們需要下載的網(wǎng)址為:https://mhpic.samanlehua.com/..., 截圖如下:

我們注意到,在這個(gè)網(wǎng)址中,只有卷數(shù)和動(dòng)漫圖片的序號(hào)在發(fā)生改變,因此,我們只需要找到總共的卷數(shù)以及每一卷中所包含的圖片即可完成此爬蟲。
??不過稍微需要注意的是,爬蟲下載下來的圖片格式為webp格式。WebP(發(fā)音 weppy,項(xiàng)目主頁),是一種支持有損壓縮和無損壓縮的圖片文件格式,派生自圖像編碼格式 VP8。根據(jù) Google 的測(cè)試,無損壓縮后的 WebP 比 PNG 文件少了 45% 的文件大小,即使這些 PNG 文件經(jīng)過其他壓縮工具壓縮之后,WebP 還是可以減少 28% 的文件大小。
??我們希望能夠?qū)ebp格式的圖片轉(zhuǎn)化為png格式。因此,我們需要在Linux系統(tǒng)中安裝webp軟件,安裝的方式如下:

Ubuntu: sudo apt-get install webp

CentOS: yum -y install libwebp-devel libwebp-tools

安裝完后,通過以下命令就可以講webp格式的圖片轉(zhuǎn)化為png格式了:

dwebp picture.webp -o picture.png

??整個(gè)爬蟲的思路就講完了,我們利用多線程進(jìn)行下載圖片以及圖片格式轉(zhuǎn)換的操作,完整的Python代碼如下(需要事先安裝webp, 以及保存目錄需要設(shè)置好):

# -*- coding: utf-8 -*-
import urllib.request
import os
import time
from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED

global COUNT # 下載失敗的圖片張數(shù)
COUNT = 0

# 參數(shù):
# dir: 圖片保存的目錄
# juanshu_num: 卷數(shù)
# page: 頁數(shù)
# 此函數(shù)的作用: 下載特定卷的特定頁的圖片到指定的保存目錄
def get_webp(dir, juanshu_num, page):
    # 拼接下載的圖片的網(wǎng)址
    base_url = "https://mhpic.samanlehua.com/comic/Z%2F"
    name = urllib.parse.quote("足球小將翼")
    juanshu = "0"+str(juanshu_num) if juanshu_num<10 else str(juanshu_num)
    juanshu = urllib.parse.quote("第%s卷"%juanshu)
    format = ".jpg-noresize.webp"
    url = base_url+name+"%2F"+juanshu+"%2F"+str(page)+format
    # print(url)
    try:
        urllib.request.urlretrieve(url, "%s/%d.webp"%(dir, page)) # 下載圖片
        print("開始轉(zhuǎn)化圖片格式:")
        os.system("dwebp %s/%d.webp -o %s/%d.png"%(dir, page, dir, page)) # 將圖片由webp格式轉(zhuǎn)化為png格式
        print("轉(zhuǎn)化圖片格式完畢。")
        os.system("rm -rf %s/%d.webp"%(dir, page)) # 刪除webp格式的圖片
    except Exception as err:
        print(err)

# 參數(shù):juanshu_num: 卷數(shù)
#       page_num: 該卷的圖片張數(shù)
# 此函數(shù)的作用: 下載某一卷中的所有圖片
def download(juanshu_num, page_num):

    # 如果目錄不存在,則新建這個(gè)目錄
    if not os.path.exists("/home/tsubasa/卷%s"%juanshu_num):
        os.mkdir("/home/tsubasa/卷%s"%juanshu_num)
    dir = "/home/tsubasa/卷%s"%juanshu_num
    # 下載每一卷中的所有圖片
    for page in range(1, page_num+1):
        try:
            get_webp(dir, juanshu_num, page)
        except urllib.error.HTTPError:
            print("該圖片不存在或者網(wǎng)絡(luò)連接錯(cuò)誤。")
            COUNT += 1

def main():

    start_time = time.time()
    # 每一卷的圖片張數(shù), 一共21卷
    page_num_list = [175, 175, 165, 171, 169, 172, 170, 170, 168, 174, 171,
                        168, 168, 168, 176, 169, 171, 167, 166, 172, 172]
    # 設(shè)置線程個(gè)數(shù)為10個(gè)
    executor = ThreadPoolExecutor(max_workers=10)  # 可以自己調(diào)整max_workers
    # submit()的參數(shù): 第一個(gè)為函數(shù), 之后為該函數(shù)的傳入?yún)?shù),允許有多個(gè)
    # 并發(fā)下載圖片
    future_tasks = [executor.submit(download, juanshu_num+1, page_num)
                        for juanshu_num,page_num in enumerate(page_num_list)]
    wait(future_tasks, return_when=ALL_COMPLETED) # 等待所有的任務(wù)結(jié)束
    end_time = time.time()
    print("圖片下載完畢!一共耗時(shí)%s秒。"%(end_time-start_time))
    print("下載失敗的圖片張數(shù)為:%d"%COUNT)

main()

運(yùn)行以上程序,靜靜地等待程序運(yùn)行完畢,輸出的結(jié)果如下:

??我們?cè)偃inux中查看已經(jīng)下好的圖片:


一共下載了3577張圖片(沒有一張下載失?。?,用了約1521秒,效率杠杠的,哈哈~~

??本文到此就要結(jié)束了,最后再加一句:中國(guó)足球,加油??!

注意:本人現(xiàn)已開通兩個(gè)微信公眾號(hào): 因?yàn)镻ython(微信號(hào)為:python_math)以及輕松學(xué)會(huì)Python爬蟲(微信號(hào)為:easy_web_scrape), 歡迎大家關(guān)注哦~~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42082.html

相關(guān)文章

  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評(píng)論0 收藏0
  • 零基礎(chǔ)如何學(xué)爬蟲技術(shù)

    摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),。本文來源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲軟件定制開發(fā)服務(wù),服務(wù)范圍涵蓋社交網(wǎng)絡(luò)電子商務(wù)分類信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲技術(shù)以供學(xué)習(xí),http://www.chujiangdata.com。 第一:Python爬蟲學(xué)習(xí)系列教程(來源于某博主:htt...

    KunMinX 評(píng)論0 收藏0
  • 小白都懂的Python爬蟲網(wǎng)易云音樂下載

    摘要:完整代碼如下正在下載根據(jù)網(wǎng)易云歌曲的直接下載歌曲上安裝爬取網(wǎng)易云歌曲源碼地址 首發(fā)知乎:https://zhuanlan.zhihu.com/p/... 目標(biāo) 偶然的一次機(jī)會(huì)聽到了房東的貓的《云煙成雨》,瞬間迷上了這慵懶的嗓音和學(xué)生氣的歌詞,然后一直去循環(huán)聽她們的歌。然后還特意去刷了動(dòng)漫《我是江小白》,好期待第二季... 我多想在見你,哪怕匆匆一眼就別離... 好了,不說廢話了。這次...

    SoapEye 評(píng)論0 收藏0
  • nodejs做的爬蟲,爬取騰訊動(dòng)漫的內(nèi)容

    摘要:首先上再上一定要設(shè)置的編碼為否則會(huì)下載下來的圖片打不開最后是說明引入必須的模塊,函數(shù)接收,并在回調(diào)里處理數(shù)據(jù)。,函數(shù)里,定義數(shù)據(jù)源,這里用的是騰訊動(dòng)漫,循環(huán)處理數(shù)據(jù)內(nèi)容,里面的函數(shù),即保存圖片到本地。 首先上package.json { name: Spider, version: 1.0.0, description: spider , main: index.js,...

    godruoyi 評(píng)論0 收藏0
  • Python爬蟲多線程下載豆瓣Top250電影圖片

    摘要:本次爬蟲項(xiàng)目將會(huì)用到模塊中的類,多線程豆瓣電影圖片??偨Y(jié)通過上述兩個(gè)爬蟲程序的對(duì)比,我們不難發(fā)現(xiàn),同樣是下載豆瓣電影,個(gè)網(wǎng)頁中的圖片,在沒有使用多線程的情況下,總共耗時(shí)約,而在使用多線程個(gè)線程的情況下,總共耗時(shí)約秒,效率整整提高了約倍。 爬蟲項(xiàng)目介紹 ??本次爬蟲項(xiàng)目將爬取豆瓣Top250電影的圖片,其網(wǎng)址為:https://movie.douban.com/top250, 具體頁面如...

    shiyang6017 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<