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.")
    

      

  • 相关阅读:
    100722B
    6-排列
    5-分西瓜差最小(背包 || dfs)
    4-计算九位数以内各个位数字和为s的种类
    3-计算01串
    2-计算星期几(基姆拉尔森计算公式)
    1-作业题构成单调曲线的点数最多
    12-分苹果(递归)
    11-砝码分配(利用3进制)
    10-约瑟夫环的几种解法
  • 原文地址:https://www.cnblogs.com/noxy/p/8076439.html
Copyright © 2011-2022 走看看