В целях обучения Я пытаюсь загрузить все сообщения с изображениями статьи Buzzfeed.Загруженные изображения являются пустым изображением, а не фактическими изображениями
Вот мой код:
import lxml.html
import string
import random
import requests
url ='http://www.buzzfeed.com/mjs538/messages-from-creationists-to-people-who-believe-in-evolutio?bftw'
headers = headers = {
'User-Agent': 'Mozilla/5.0',
'From': '[email protected]'
}
page= requests.get(url)
tree = lxml.html.fromstring(page.content)
#print(soup.prettify()).encode('ascii', 'ignore')
images = tree.cssselect("div.sub_buzz_content img")
def id_generator(size=6, chars=string.ascii_uppercase + string.digits):
return ''.join(random.choice(chars) for x in range(size))
for image in images:
with open(id_generator() + '.jpg', 'wb') as handle:
request = requests.get(image.attrib['src'], headers=headers, stream=True)
for block in request.iter_content(1024):
if not block:
break
handle.write(block)
Что извлекаются образы все 110 байтов в размере, и их просмотр просто пустое изображение. Я делаю что-то не так в моем коде здесь, что вызывает проблему? Мне не нужно использовать запросы, если есть более простой способ сделать это.
Попробуйте добавить пользовательского агента по вашему запросу. Многие веб-серверы отклоняют запросы без пользовательского агента. Обычно обычным образом оставлять адрес электронной почты в пользовательском агенте при обходе, чтобы позволить владельцу сервера связаться с вами, если они не одобряют обход. –
@SteinarLima Все еще не повезло с добавлением пользовательского агента. Я обновил свой OP новым кодом. Я считаю, что я правильно реализовал пользовательский агент? – ComputerLocus
С другой стороны: вы не должны хранить такие изображения на своем компьютере. Они заставят вас выглядеть глупо. –