thanks for your time.
我写了一个爬虫,执行到某一步时,获取一个地址的set,传入到这个文件中,开始下载图片
from urllib import request
import ssl
ssl._create_default_https_context = ssl._create_unverified_context;
class Downloader(object):
def download(self, urlSet):
print("----- start download -----")
if(isinstance(urlSet, set)):
count = 0
for imgUrl in urlSet:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'};
coat = request.Request(url=imgUrl, headers=headers);
res = request.urlopen(coat);
content = res.read();
f = open("%d.jpg" % count, 'wb')
f.write(content)
f.close()
count += 1;
else:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'};
coat = request.Request(url=urlSet, headers=headers);
res = request.urlopen(coat);
content = res.read();
f = open("001.jpg", 'wb')
f.write(content)
f.close()
print("----- download over -----")
下载了大概几千个图片后,程序不再写入图片,也没有继续爬取页面,也没有抛出异常
点暂停也没有效果。
我感觉可能是写文件的时候出问题了。
或者请给我推荐一个靠谱的写文件的方法或者三方包,谢谢。
可能是 HTTP 请求超时, 通过设置超时时间可发现问题.
推荐 requests 库, 边下载边保存, 如
参考
http://docs.python-requests.o...