#python #web-scraping #beautifulsoup #selenium-chromedriver
Вопрос:
Я хотел очистить эту ссылку и получить всю таблицу игроков :- https://www.nba.com/stats/leaders/?StatCategory=FG3Mamp;PerMode=Totalsamp;Season=2015-16amp;SeasonType=Regular Season
Здесь, если вы нажмете на кнопку далее в таблице, содержимое таблицы изменится, но URL-адрес вверху не изменится. Но у кнопки нет тега кнопки. Это выглядит так:-
<a class="stats-table-pagination__next" href="" alt="Next Page" ng-click="nav(1)">
<i class="fa fa-angle-right" aria-hidden="true"></i>
</a>
Я попытался использовать красивый суп и селен, чтобы очистить этот веб-сайт, но я не могу понять, как перейти на другие страницы таблицы, чтобы я мог очистить их тоже. Пожалуйста, предложите решение.
Ответ №1:
- Вы можете использовать google chrome в режиме разработчика и найти файл json, содержащий все данные из изображения, которые вы можете видеть
- Затем перейдите на вкладку Сеть и обновите ссылку, а затем перейдите на вкладку xhr, где вы найдете множество ссылок, одна из которых содержит информацию об игроках
- после получения этих точных данных нажмите на эту ссылку, скопируйте адрес и используйте
requests
модуль, получите данные json и извлеките информацию
import requests res=requests.get("https://stats.nba.com/stats/leagueLeaders?LeagueID=00amp;PerMode=Totalsamp;Scope=Samp;Season=2015-16amp;SeasonType=Regular Seasonamp;StatCategory=FG3M") data=res.json() for i in range(len(data['resultSet']['rowSet'])): print(data['resultSet']['rowSet'][i][2])
Выход:
Stephen Curry
Klay Thompson
James Harden
Damian Lillard
..
Изображение:
Комментарии:
1. Это действительно помогло, спасибо. Я новичок в веб-скребке и хотел попробовать этот веб-сайт НБА, но ваш способ наиболее эффективен. Я просто хочу спросить , можно ли использовать этот метод, когда вы зашли на вкладку «Сеть», нашли файл json и использовали его для извлечения данных…..может ли этот метод также использоваться на большинстве веб-сайтов, и как вы узнали об его использовании таким образом?
2. Да, мы можем использовать этот метод, если данные динамичны и данные представлены API, поэтому мы можем использовать его, но он не всегда присутствует на многих веб-сайтах, поэтому для этого нам нужно изменить подход!