BeautifulSoup не возвращает ничего во время очистки сайта

#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, которая позволит вам автоматизировать ваш браузер.