簡體   English   中英

從Python2到Python3的DeadLink異常

[英]DeadLink exception from Python2 to Python3

我發現用Python 2.7編寫的這段代碼在讀取網址列表並檢索其內容時繞過了死鏈接:

for i in xrange(lines):
    try:
        t = urllib2.urlopen(urllib2.Request(lines[i]))
        deadlinkfound = False
    except:
        deadlinkfound = True
    if not(deadlinkfound):
        urllib.urlretrieve(lines[i], "Images/imag" + "-%s" % i)

它在Python2中工作正常,但由於urllib2合並,所以在Python3中找不到等效項。

您可以在此處使用urllib.request進行完全相同的操作。 不要捕獲所有可能的異常,僅捕獲合理地將要拋出的異常:

from urllib import request, error
from http.client import HTTPException

for i, url in enumerate(lines):
    try:
        t = request.urlopen(request.Request(url, method='HEAD'))
    except (HTTPException, error.HTTPError):
        continue
    request.urlretrieve(url, 'Images/imag-{}'.format(i))

此代碼執行相同的操作,但效率更高。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM