#python #web-scraping #beautifulsoup
Вопрос:
Я пытался наскрести в Интернете рейтинги игроков, сводящих с ума, с помощью BeautifulSoup. Я хочу получить статистику от этого игрока. Но, когда я проверил HTML, я увидел, что рейтинги были в части «Теневой контент», и я, похоже, не могу это исправить.
Ответ №1:
Вы имеете дело с JavaScript
веб-сайтом, который отображает внутренний HTML-код после полной загрузки страницы. requests
не смогу JS
сделать для вас рендеринг.
В этом случае вам нужно найти API
то , что питает внутреннее HTML
, в вашем случае ниже:
import requests
from pprint import pp
def main(url):
params = {
'filter': 'iteration:* AND primaryKey:9925',
'sort': 'iteration:Asc'
}
r = requests.get(url, params=params)
pp(r.json()['docs'][0])
main('https://ratings-api.ea.com/v2/entities/m22-ratings')
Выход:
{'college': 'Rutgers',
'awareness_rating': 94,
'throwPower_rating': 30,
'kickReturn_rating': 74,
'leadBlock_rating': 22,
'strength_rating': 62,
'bCVision_rating': 65,
'catchInTraffic_rating': 45,
'playAction_rating': 6,
'pursuit_rating': 85,
'plyrAssetname': 'McCourtyDevin_9925',
'mediumRouteRunning_rating': 13,
'catching_rating': 80,
'acceleration_rating': 91,
'spinMove_rating': 75,
'height': 70,
'finesseMoves_rating': 45,
'spectacularCatch_rating': 61,
'runBlock_rating': 35,
'tackle_rating': 74,
'injury_rating': 95,
'zoneCoverage_rating': 92,
'weight': 195,
'plyrBirthdate': '8/13/87',
'runningStyle_rating': 'Short Stride Loose',
'deepRouteRunning_rating': 10,
'firstName': 'Devin',
'yearsPro': 11,
'totalSalary': 10000000,
'trucking_rating': 28,
'throwAccuracyShort_rating': 6,
'position': 'FS',
'jukeMove_rating': 77,
'playRecognition_rating': 90,
'shortRouteRunning_rating': 15,
'status': 'published',
'lastName': 'McCourty',
'jerseyNum': 32,
'breakSack_rating': 14,
'speed_rating': 91,
'runBlockPower_rating': 35,
'jumping_rating': 92,
'toughness_rating': 77,
'throwOnTheRun_rating': 6,
'manCoverage_rating': 85,
'stiffArm_rating': 25,
'powerMoves_rating': 35,
'iteration': 'launch-ratings',
'release_rating': 12,
'hitPower_rating': 67,
'throwAccuracyMid_rating': 6,
'kickAccuracy_rating': 24,
'passBlockPower_rating': 35,
'impactBlocking_rating': 67,
'stamina_rating': 97,
'carrying_rating': 50,
'breakTackle_rating': 62,
'plyrPortrait': 2043,
'kickPower_rating': 22,
'plyrHandedness': 'Right',
'throwUnderPressure_rating': 23,
'team': 'Patriots',
'signingBonus': 6550000,
'passBlock_rating': 35,
'changeOfDirection_rating': 87,
'press_rating': 86,
'throwAccuracyDeep_rating': 6,
'archetype': 'S_Zone',
'blockShedding_rating': 64,
'runBlockFinesse_rating': 35,
'teamId': 22,
'agility_rating': 89,
'fullNameForSearch': 'Devin McCourty',
'overall_rating': 92,
'passBlockFinesse_rating': 35,
'age': 34,
'primaryKey': 9925}
Забирайте все, что вам нужно :).