Я пытаюсь получить некоторые изображения 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-го шага (который соответствует предпоследней строке)
Этот URL-адрес возвращает html-страницу в ответ вместо объекта json-parsable. Я думаю, поэтому вы не можете разобрать его даже после преобразования в строку.






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