@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)
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 4
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Потому что нет элемента с таким id
5e6bd2da332b7557563301.png
Ответ написан
hottabxp
@hottabxp
Эксперт по BeautifulSoup(но это не точно!)
Потому что в данном случае нужно использовать selenium, так как там почти сплошной javascript. Запросите страницу requests'м, и сохраните её на диск, и посмотрите что в неё внутри
Ответ написан
l3ftoverz
@l3ftoverz
Люблю Финский металкор
Судя по селектору - это далеко не ID.
Ответ написан
@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)
Ее код слишком длинный, вставлять ее не буду.
Ответ написан
Ваш ответ на вопрос

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

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