Каков наилучший способ открыть URL и получить до X байтов в Python? - PullRequest
3 голосов
/ 07 июня 2010

Я хочу, чтобы робот получал URL каждый час, но если оператор сайта злонамеренный, он может заставить свой сервер отправить мне файл размером 1 ГБ. Есть ли хороший способ ограничить загрузку, скажем, до 100 КБ и остановить после этого ограничения?

Я могу представить, что пишу свой собственный обработчик соединений с нуля, но я бы хотел использовать urllib2, если это вообще возможно, просто как-то указав предел.

Спасибо!

1 Ответ

7 голосов
/ 07 июня 2010

Это, вероятно, то, что вы ищете:

import urllib

def download(url, bytes = 1024):
    """Copy the contents of a file from a given URL
    to a local file.
    """
    webFile = urllib.urlopen(url)
    localFile = open(url.split('/')[-1], 'w')
    localFile.write(webFile.read(bytes))
    webFile.close()
    localFile.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...