ограничить размер загружаемой страницы - PullRequest
3 голосов
/ 04 августа 2009

Есть ли способ ограничить объем данных, загружаемых модулем pyll's urllib2? Иногда я сталкиваюсь с неработающими сайтами с видом / dev / random в качестве страницы, и получается, что они занимают всю память на сервере.

1 Ответ

3 голосов
/ 04 августа 2009

urllib2.urlopen возвращает файл-подобный объект, и вы можете (по крайней мере, теоретически) .read(N) из такого объекта ограничить объем данных, возвращаемых максимум в N байтов.

Этот подход не полностью защищен от ошибок, потому что активно враждебный сайт может пойти на все, чтобы обмануть полученного достаточно надежного, например, открыватель по умолчанию для urllib2; в этом случае вам нужно будет внедрить и установить свой собственный нож, который знает, как защитить себя от таких атак (например, получать не более чем МБ за раз из открытого сокета и т. д. и т. д.).

...