Получение изображений Google через Python. Объект JSON должен быть проблемой str

Я пытаюсь получить некоторые изображения Google через python, однако, когда я пытаюсь прочитать ответ json с сервера, я получаю сообщение об ошибке, сообщающее мне, что объект должен быть str вместо байтов. Собственно говоря, я попытался решить проблему, преобразовав ответ сервера в str путем его декодирования (utf-8). Я получаю еще одну ошибку: «Ожидаемое значение: строка 1, столбец 1 (символ 0)» Вот что я сделал
1. Я ищу в Google поисковые запросы ЧЕРНЫЕ РУБАШКИ и нажимаю на рубрику изображений. Я скопировал URL.
2. Создаю заголовки, в которых сообщаю, что пользовательский агент хром (чтобы не блокироваться при отправке запроса на сервер)
3. Создаю заявку
4. Прочитал запрос
5. Когда я пытаюсь загрузить его, у меня возникает проблема, о которой говорилось выше. Итак, я попытался декодировать результат шага 4 (добавив этот .decode ('utf-8')..

Вот код, который я использовал

import os
import urllib.request as ulib
import urllib.parse
import json


headers = {'User-Agent': 'Chrome/41.0.2228.0 Safari/537.36'} 
url = 'https://www.google.com/search?q=BLACK+SHIRTS&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiS2NPpxPbbAhWlMewKHSpiC9IQ_AUICygC&biw=1600&bih=794' ## this is the url when i searched
request = ulib.Request(url, None, headers)
json_string = ulib.urlopen(request).read()
json_string=json_string.decode('utf-8')
page = json.loads(json_string)

PS: удалите .decode ('utf-8'). с 4-го шага (который соответствует предпоследней строке)

вы пробовали использовать запросы? может облегчить это

SuperStew 28.06.2018 17:31

Этот URL-адрес возвращает html-страницу в ответ вместо объекта json-parsable. Я думаю, поэтому вы не можете разобрать его даже после преобразования в строку.

Denis Fetinin 28.06.2018 17:35
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
45
1

Ответы 1

Вам нужно проанализировать ответ HTML с помощью такого пакета, как Beautiful Soup https://www.crummy.com/software/BeautifulSoup/?

Другие вопросы по теме