Download

下载网络数据的几种方式,以下载图片为例

urllib

'''保存 url 对应数据到本地'''
urllib.request.urlretrieve(url, filename)

requests

'''保存 url 对应数据至 filepath 文件'''
res = requests.get(url, headers=headers, timeout=20)
with open(filepath, 'wb') as f:
    f.write(res.content)

或者使用下面的分块下载,这样可以下载大文件

res = requests.get(url, headers=headers, timeout=20)
with open(filepath, 'wb') as f:
    for chunk in res.iter_content(chunk_size=32):
        f.write(chunk)

不使用with ... as也可以,判断状态码为200后保存至文件。

res = requests.get(url, headers=headers, timeout=20)
if res.status_code == 200:
    open(path, 'wb').write(res.content)

如果使用 session 的话,则稍加修改

requests这4中方式大同小异,下载方式都是requests.getsession.get, 只是保存方式略有不同。

scrapy

telethon

在使用 telethon 下载 telegram 的媒体文件时,使用其API函数 download_media 即可。

Last updated

Was this helpful?