我正在尝试使用Python和BeautifulSoup检索图像。我设法获得了图像的完整网址,但是当我使用urllib.urlretrieve(imagelink, filename)
时,它会检索图像,但图像不完整,只有3.2kb。
真实的图像(我得到很多图像)平均大约800kb。它迭代并下载所有图像,但它们都不可见,并且都是相同的文件大小。完整的图片网址在浏览器中打开时可以正常工作。
知道什么可能导致这样的问题吗?我不认为显示我的代码会有所帮助,但这里是我得到网址的部分:
print imagelink
filename = imagelink.split('/')[-1]
time.sleep(5)
urllib.urlretrieve(imagelink, filename)
time.sleep(5)
答案 0 :(得分:2)
宏杰李,requests是urllib的包装器。因为它也是套接字的包装 - ))
使用urllib2可以实现相同的结果。
>>> import urllib2
>>> r = urllib2.urlopen('https://i.stack.imgur.com/tkGEv.jpg?s=328&g=1')
>>> with open("/home/ziya/Pictures/so_image.jpg", "wb") as img:
... img.write(r.read())
答案 1 :(得分:0)
您应该尝试requests
:
import requests
url = 'https://i.stack.imgur.com/tkGEv.jpg?s=328&g=1'
r = requests.get(url)
with open('tkGEv.jpg', 'wb') as fd:
for chunk in r.iter_content(chunk_size=128):
fd.write(chunk)