Python - 下载图像时的multiprocessing.pool.MaybeEncodingError

时间:2016-11-18 20:04:04

标签: python web-scraping multiprocessing

我一直在尝试从Flickr下载图片。我首先从Flickr中抓取所有URL,然后将URL列表提供给一个函数,该函数为我下载这些URL中的图像。

def download_link(directory,url):
    flName = str(directory + str(os.path.basename(url)))
    urlretrieve(url, flName)

download = partial(download_link, download_dir)
with Pool(10) as p:
    p.map(download, urlList)

我看到的问题是,脚本每次都不会失败。我特别注意到,当我经常重新运行脚本时,它经常失败。它会在失败之前下载一些URL。我并不特别怀疑列表中只有一些导致此失败的错误URL。 这是否有原因? 以下是错误的完整回溯:

Traceback (most recent call last):
  File "SocialMediaImageExtracts.py", line 62, in <module>
    __main__(sys.argv)
  File "SocialMediaImageExtracts.py", line 59, in __main__
    p.map(download, urlList)
  File "/Users/sreejithmenon/anaconda/lib/python3.5/multiprocessing/pool.py", line 260, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "/Users/sreejithmenon/anaconda/lib/python3.5/multiprocessing/pool.py", line 608, in get
    raise self._value
multiprocessing.pool.MaybeEncodingError: Error sending result: '<multiprocessing.pool.ExceptionWithTraceback object at 0x1037de0f0>'. Reason: 'TypeError("cannot serialize '_io.BufferedReader' object",)'

非常感谢任何帮助。

编辑:我确定没有错误的网址,因为它只是针对该集合中的所有网址运行了一次,现在又失败了

0 个答案:

没有答案