Получение изображений Google через Python. JSON-объект должен быть в порядке - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь получить некоторые изображения 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-го шага (соответствует строке перед последним)

1 Ответ

0 голосов
/ 28 июня 2018

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

...