Соскоб в сети - застрял на печати чисел - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь очистить все характеристики игрока.

Я хочу, чтобы эти цифры вышли

Stats
2019 SEASON / CAREER
PPG
16.6 / 9.7
ASST
2.0 / .7
REB
6.5 / 5.9
FG%
61.5 / 59.9
FT%
64.3 / 47.7
3P%
17.6 / 66.7

импорт библиотек

import requests
from bs4 import BeautifulSoup 

укажите URL

url = "https://www.msn.com/en-us/sports/nba/montrezl-harrell/player/sp-id-30301000000698651"
result = requests.get(url).text

soup = BeautifulSoup(result, 'html.parser')

Уберите имя и получите его значение

content = soup.find('div', {"class": "statsitem"})

print(content)

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Я думаю, что он динамически загружается.Посмотрите, есть ли xhr на вкладке сети инструментов разработчика, которая извлекает данные, и вы можете имитировать.В противном случае, чтобы получить макет в том виде, в котором он отображается, вы можете использовать селен для автоматизации браузера, который позволит загружать динамический контент, а затем выгрузить page_source в bs

import requests
from bs4 import BeautifulSoup as bs
from selenium import webdriver

d = webdriver.Chrome(r'C:\Users\User\Documents\chromedriver.exe')
d.get('https://www.msn.com/en-us/sports/nba/montrezl-harrell/player/sp-id-30301000000698651')
soup = bs(d.page_source, 'lxml')

title = soup.select_one('.playerstats h3')
print(title.text)
for item in soup.select('.statsitem'):
    print(item.select_one('.abbr').text, '\n', item.select_one('.statsvalue').text)
d.quit()
0 голосов
/ 20 июня 2019

Я не уверен, знакомы ли вы с селеном, Python поддерживает селен.Вы можете перейти к любому URL и очистить необходимые данные от DOM.

Вы получите учебники по номерам от youtube, и, поскольку ваши требования слишком просты, вы можете достичь этого в кратчайшие сроки, используя селен.

https://youtu.be/GJjMjB3rkJM

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...