[python爬蟲]使用urllib函數urlretrieve報錯[socket error][Errno 10054]

來源:互聯網
上載者:User

標籤: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]

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.