2017-09-30 6 views
0

このテーブルをパンダで掻き集めるのに問題があります。テーブルのIDタグを使用してテーブルにアクセスしようとしましたが、ヘッダーカラムだけが返され、空のデータフレームがあると言います。誰かが何らかのアイデアを持っているなら、それは大いに評価されるでしょう [空DATAFRAME カラム:[バッター、ピッチャー、PA、AB、H、1B、2B、3B、HR、BB、SO、AVG、OBP、SLG、PPPA] 空のDataFrame出力雛がpythonでパンダでhtmlテーブルを掻き集める

import pandas as pd 
import requests 

url_1 = 'https://swishanalytics.com/optimus/mlb/batter-vs-pitcher-stats? 
date=2011-09-27' 
df1 = pd.read_html(url_1,attrs={'id': ['stat-table']}) 
print(df1) 

コードの出力

インデックス:[]]


(プログラムコードで終了しました:0)

任意のキーを押し続けること。 。 。

+0

実データは 'stat-table'にありません。これは 'this.playerArray'のjsonによって埋められます。 – fukanchik

答えて

0

あなたは慎重に、ページのソースを閲覧した場合、あなたは情報がthis.playerArrayに含まれていることがわかりますので、あなたはすべてのデータを取得したい場合は、以下の線に沿って何かが仕事をする必要があります。

import requests 

page = requests.get('https://swishanalytics.com/optimus/mlb/batter-vs-pitcher-stats?%20date=2011-09-27') 

start = page.text.find('this.playerArray = ') + 19 
end = page.text.find("this.currentSite = 'default';") 

data = eval(page.text[start:end].replace(';', '').replace('\n', '')) 

...データはdictsのリストにあり、各行は別々のdictです。

あなたがそれをDataFrameなどで使用したい場合は、後でパンダ(たとえば、pandas.DataFrame.from_dict())を使用することができます。

+0

ありがとうございました!私はgoogle chromeのinspectボタンを使って要素タブを見ていました。単純なhtmlテーブルのように見えました。 –

関連する問題