#python #html #web-scraping #beautifulsoup
#python #HTML #очистка веб-страниц #beautifulsoup
Вопрос:
Я пытаюсь очистить исходный сайт, чтобы проверить, доступно ли данное название игры для macOS. Например, The Sims 4 (https://www.origin.com/pol/pl-pl/store/the-sims/the-sims-4 ). Есть значок логотипа Apple, который, я считаю, был бы отличным индикатором для проверки. Итак, я просмотрел код и нашел его:
<i ng-repeat="platform in platforms track by $index" class="otkicon otkicon-apple"></i>
Теперь перейдем к коду Python:
page = requests.get(origin_site)
soup = BeautifulSoup(page.content, "html.parser")
result = soup.find("i", class_="otkicon otkicon-apple")
if result:
origin_answer = "YES"
Ааааа И он возвращает None.
Для других сайтов (Steam, Gog, Epic) это работает. Я искал его в течение последних 2 часов и перепробовал все решения, которые смог найти. Ни один (nomen omen) из них не работал. Я также пробовал с заголовками, тоже ничего. Я серьезно понятия не имею, что делать дальше.
Комментарии:
1. Это похоже на сайт Angular, содержимое, которое вы видите в браузере, динамически генерируется браузером. BS не может этого видеть.
Ответ №1:
Для работы этого веб-сайта требуется JS, а requests его не поддерживает. Но вы можете:
- Если есть, используйте API.
- Используйте requests-html, который полностью поддерживает Javascript.
- Используйте привязку Python к Selenium, которая позволит вам автоматизировать ваш браузер.