zoukankan      html  css  js  c++  java
  • python多线程下载网页图片并保存至特定目录

    #!python3
    #multidownloadXkcd.py  - Download XKCD comics using multiple threads.
    
    import requests
    import bs4
    import os
    import threading
    
    # os.mkdir('xkcd', exist_ok=True)     # store comics in ./xkcd
    if os.path.exists('xkcd'):
        print("xkcd is existed!")
    else:
        os.mkdir('xkcd')
    
    def downloadXkcd(startComic, endComic):
        for urlNumber in range(startComic, endComic):
            #Download the page
            print("Downloading page http://xkcd.com/%s..." % urlNumber)
            res = requests.get('http://xkcd.com/%s' % urlNumber)
            res.raise_for_status()
    
            print(res.text)
            soup = bs4.BeautifulSoup(res.text)
    
            #Find the URL of the comic image.
            comicElem = soup.select('#comic img')
            if comicElem == []:
                print('Could not find comic images.')
            else:
                comicUrl = comicElem[0].get('src')
            #     #Download the image.
            #     print('Downloading image %s...' % (comicUrl))
            #     res = requests.get(comicUrl)
            #     res.raise_for_status()
            #
            #     # Save the image to ./xkcd
            #     imageFile = open(os.path.join('xkcd', os.path.basename(comicUrl)), 'wb')
            #     for chunk in res.iter_content(100000):
            #         imageFile.write(chunk)
            #     imageFile.close()
    
    downloadThread = threading.Thread(target=downloadXkcd(555, 557))
    downloadThread.start()
    
    # # TODO: Create and start the thread objects
    # downloadThreads = []        # a list of all the Thread objects
    # for i in range(500, 600, 10):
    #     downloadThread = threading.Thread(target=downloadXkcd, args=(i, i+9))
    #     downloadThreads.append(downloadThread)
    #     downloadThread.start()
    #
    # # TODO: Wait for all threads to end
    # for downloadThread in downloadThreads:
    #     downloadThread.join()
    # print("Done.")
    

      

  • 相关阅读:
    vue后台模板推荐
    Webstorm的一些常用快捷键
    dataTables 插件学习整理
    js阻止事件冒泡
    vscode常用快捷键
    VScode插件以及配置
    今日笔记2
    ES6中的import()函数
    ES6之class 中 constructor 方法 和 super 的作用
    JS设计模式一:单例模式
  • 原文地址:https://www.cnblogs.com/noxy/p/8076439.html
Copyright © 2011-2022 走看看