你可能拿到一批图片链接需要下载图片到本地, 但其中有部分失效了, 现在我们要找出其中失效的部分。
试了一下, 请求失效链接返回的可能是文本内容,如果加上判断图片的逻辑, 就能找到失效的链接。
在stackoverflow 上找到了一个比较巧妙的方案:
https://stackoverflow.com/questions/51757305/check-if-image-url-leads-to-real-image-in-python
代码如下:
def sendRequest(url):
try:
page = requests.get(url)
except Exception as e:
print("error:", e)
return False
# check status code
if (page.status_code != 200):
return False
return page
def downloadImage(imageUrl, filePath):
img = sendRequest(imageUrl)
if (img == False):
return False
if not img.content[:4] == b'\xff\xd8\xff\xe0': return False
with open(filePath, "wb") as f:
f.write(img.content)
return True
使用downloadImage 即可判断图片url 是否失效