Фон
Я пытаюсь очистить эту страницу . В основном получают название каждого продукта, его цену и изображение. Я ожидал увидеть div, которые содержат продукт в супе, но я не сделал. Поэтому я открыл URL в своем браузере chrome и, выполнив элемент inspect во вкладке «Мои сети», обнаружил, что GET-вызов, который он делает, находится прямо на этой странице , чтобы получить всю информацию о продукте. , Если вы откроете этот URL-адрес, вы увидите, в основном, объект JSON, и там есть строка html с элементами div для продукта и цен. Вопрос для меня: как мне разобрать это?
Попытка решения Я подумал, что один из очевидных способов - преобразовать суп в JSON и так, чтобы удовлетворить потребности в этом супе. быть строкой, и это именно то, что я сделал. Проблема в том, что моя переменная json_data
в основном содержит строку. Поэтому, когда я пытаюсь сделать что-то подобное json_data['Results']
, появляется сообщение об ошибке, в котором говорится, что я могу передавать только целые числа. Я не уверен, как действовать дальше.
Мне бы очень понравились предложения и указания, если я что-то не так делаю.
Ниже приводится мой код
from bs4 import BeautifulSoup
from random_user_agent.user_agent import UserAgent
from random_user_agent.params import SoftwareName, OperatingSystem
import requests
import json
import sys
sys.stdout = open('output.html', 'wt')
page_to_scrape = 'https://shop.guess.com/en/catalog/browse/men/tanks-t-shirts/view-all/?filter=true&page=1'
software_names = [SoftwareName.CHROME.value]
operating_systems = [OperatingSystem.WINDOWS.value, OperatingSystem.LINUX.value]
user_agent_rotator = UserAgent(software_names=software_names, operating_systems=operating_systems, limit=100)
page = requests.get(page_to_scrape, headers={'User-Agent': user_agent_rotator.get_random_user_agent()})
soup = BeautifulSoup(page.content, "html.parser")
json_data = json.dumps(str(soup))
print(json_data)