2016-09-12 19 views
3

bs4を使用して1つのNBA統計サイトからテーブルを取得しようとしました。beautifulsoupがクラスを見つけられませんでした

ウェブサイトはJavaScriptを使用していないようです。

soup.prettifyの印刷結果は正常ですが、soup.find_allを使用して、必要なテーブルを取得できませんでした。ここで私が使用しているコードです:

import requests 
from bs4 import BeautifulSoup 

url = 'http://stats.nba.com/team/#!/1610612738/stats/' 
page = requests.get(url) 
html = page.content 
soup = BeautifulSoup(html, 'html.parser') 

tables = soup.find_all('table') 

答えて

4

ウェブサイトのデータをロードするajaxでは、このデータは、単純にBeautifulSoupでページの内容を取得することにより、あなたは利用できなくなります。しかし、おそらくBeautifulSoupは必要ありません。

Chromeを使用している場合は、ウェブサイトにアクセスしてブラウザの開発ツールにアクセスし、[ネットワーク]タブをクリックし、XHRフィルタをクリックしてページをリロードします。あなたは行われたリクエストの リストが表示されます:

ものと、あなたが興味のあるどれご覧に

enter image description here

クリックあなたは、あなたが好きなものを見つけるのURLをコピーし、得れば。リクエストライブラリのデータ(既にコードにこれを含めています):

r = requests.get('http://stats.nba.com/stats/commonallplayers?IsOnlyCurrentSeason=0&LeagueID=00&Season=2016-17') 
data = r.json() 
関連する問題