@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)
  • Вопрос задан
  • 2470 просмотров
Пригласить эксперта
Ответы на вопрос 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)
Ее код слишком длинный, вставлять ее не буду.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы