Избегайте загрузки изображений с помощью Beautifulsoup и urllib.request.

Я использую BeautifulSoup (анализатор 'lxml') с urllib.request.urlopen() для получения текстовой информации с веб-сайта. Однако, когда я проверяю сетевой раздел в своем мониторе активности, я вижу, что python загружает много данных. Это говорит о том, что скачивается не только текст, но и изображения.

Можно ли избежать загрузки изображений при просмотре веб-страниц с помощью BeautifulSoup?


person Frits    schedule 03.04.2016    source источник
comment
? Вы действительно видите байт-код необработанного изображения, написанный в вашем ответе? В противном случае я не уверен, почему вы загружаете изображения. Изображения обычно хранятся отдельно в атрибуте <img> с атрибутом src — парсеры HTML будут содержать ссылку на изображение, представленное в виде текста, но на самом деле не будут принудительно загружать изображение, потому что вы никогда не говорили ему переходить по ссылке.   -  person Akshat Mahajan    schedule 03.04.2016
comment
Я подозреваю, что на странице просто больше данных, чем вы думаете. Встроенный JS может нанести удар.   -  person Akshat Mahajan    schedule 03.04.2016
comment
я проверил результат «суп» и сохранил его в текстовый файл. вы правы, это было 256 КБ, и было <img> атрибутов, связанных с реальными изображениями. спасибо за помощь, Акшат!   -  person Frits    schedule 03.04.2016


Ответы (1)


Это маловероятно, так как изображений нет на странице, на которой они находятся <img src="/here/goes/this/img"... Браузер или urllib должен совершить несколько поездок туда, где находятся статические файлы, такие как JS, img, CSS. Одним из возможных решений для уменьшения размера является запрос заархивированного содержимого.

Добавьте заголовок "Accept-Encoding":"gzip" к объекту Request. Если сервер поддерживает это, уменьшение размера будет хорошим. Затем вы gzip.decompress() получите строковые данные.

person C Panda    schedule 04.04.2016