码迷,mamicode.com
首页 > 编程语言 > 详细

[python爬虫]使用urllib函数urlretrieve报错[socket error][Errno 10054]

时间:2015-04-26 13:54:36      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:python

为了练手,使用爬虫爬一个“你懂得”图床的,使用的是urlretrieve函数,不但速度慢,还总是会报错,不是open的timeout就是上面提到的socket error。

在网上找了许多办法诸如请求中加入headers、在调用urllib2.Request.urlopen().read()后需要调用close()等方法并未奏效。
由于不想麻烦scrapy等库,所以发现了个简单粗暴的办法:
直接使用urllib自带的open函数打开数据流,再以二进制写入文件保存:
参考代码段:其中注释为原来被替换掉的方法

# urlretrieve速度慢不稳定
# urllib.urlretrieve(i, path +‘%s.jpg‘ % ImgNum)
urlopen = urllib.URLopener()
#下载图片流
fp = urlopen.open(imageUrl)
data = fp.read()
#清除并以二进制写入
f = open(path + ‘1.jpg‘ , ‘w+b‘)
f.write(data)
f.close()

[python爬虫]使用urllib函数urlretrieve报错[socket error][Errno 10054]

标签:python

原文地址:http://blog.csdn.net/songyu0120/article/details/45287441

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!