@progerstas

Выводит None при парсинге страницы. Как исправить?

Выводит None при парсинге страницы. Попробовал подождать 5 сек с помощью time.sleep(5)

Но не работает. Вот мой код:
import requests
from bs4 import BeautifulSoup as BS
import time

url = 'https://krunker.io/social.html?p=profile&q=_Gleb_'
r = requests.get(url)
time.sleep(5)
html = BS(r.content, 'html.parser')

a = html.find(id = 'profileHolder.profileData.profileName')
print(a)

time.sleep(5)
  • Вопрос задан
  • 2339 просмотров
Пригласить эксперта
Ответы на вопрос 3
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Потому что нет элемента с таким id
5e6bd2da332b7557563301.png
Ответ написан
Комментировать
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Потому что в данном случае нужно использовать selenium, так как там почти сплошной javascript. Запросите страницу requests'м, и сохраните её на диск, и посмотрите что в неё внутри
Ответ написан
Комментировать
@max4107575
Элемент "profileData" можно получить следующим образом:
import requests
from bs4 import BeautifulSoup as BS
import time

url = 'https://krunker.io/social.html?p=profile&q=_Gleb_'
r = requests.get(url)
soup = BS(r.text, 'lxml')
result = soup.find("div", { "id" : "profileData" })
print (result)

Результат:
<div id="profileData"></div>
Похоже, что он заполняется после исполнения Javascript. Посмотрите следующую Javascript-функцию, которая присутствует в ответе на запрос:
function F(e, t, n, r, a, i, d, f)
Ее код слишком длинный, вставлять ее не буду.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы