在我的程序中,从特定网站下载图像的urlreview真的很慢



我使用urllib.request库中的urlreview从网站下载图像。我的代码很慢。保存4个图像(64x64和png(花了12分钟。这是不正常的,因为我在其他网站上测试过,而且它的工作速度更快(我的意思是,一张图片3分钟是不正常(。问题是来自网站还是我的电脑(我有一个很棒的网络(。这是代码:

import urllib.request
from PIL import Image
import os.path
import json
#Load and edit latest crypto data for cards
with open("json/latest_crypto.json", 'r') as latest_crypto_json:
latest_crypto = json.load(latest_crypto_json)
del latest_crypto["status"]
for i in latest_crypto['data']:
logo_online_adress = "https://s2.coinmarketcap.com/static/img/coins/64x64/{}.png".format(i)
logo_local_adress = "misc/cryptoLogo/{}.png".format(i)
if not os.path.exists(logo_local_adress):
urllib.request.urlretrieve(logo_online_adress, logo_local_adress)
current_logo = Image.open(logo_local_adress)
if current_logo.size != (64, 64):
resized_logo = current_logo.resize((64,64))
resized_logo.save(logo_local_adress)
print(i+" import with resize")
else:
print(i+" import without resize")
else:
print(i+" already exist")

就上下文而言,我正在从CoinMarketCap收集加密货币徽标,以便稍后在HTML代码中使用。

我正在进行检查,看看它是否已经存在于目标文件夹中,如果没有,我会得到它,并在需要时调整大小。

这可能很混乱,但这条线周围的一切都按预期进行:

urllib.request.urlretrieve(logo_online_adress, logo_local_adress)

我唯一的问题是速度。我现在不能使用这个脚本,因为它太慢了。

你可以尝试使用curl来获取图片,看看是否更快——如果不更快,那就试试你的网络浏览器。

若速度更快,那个么您可能需要摆出浏览器客户端的姿势,设置与浏览器相同的标题。

有些人做了很多事情来对抗其他人的自动化。

你可以试试这个,在我的例子中,请求比urllib快,所以我写了这个给:

  • 监视器速度
  • 使用自定义块大小直接在文件上写入

https://stackoverflow.com/a/75261338/5053475

相关内容

  • 没有找到相关文章

最新更新