2017-08-03 7 views
2

私は美しいスープを使ってスクラップデータをしようとしていますが、それはリストの形になりますが、私はパンダのデータフレームが必要です。私はforループを使用してデータを取得していますが、これらをデータフレームに追加することはできません。私が行のlenをチェックするとき、それはただ1としか言いません。美しいスープForループは私に個人的なリストを与えますが、必要なデータフレームは

INFY = url.urlopen("https://in.finance.yahoo.com/quote/INFY.NS/history?p=INFY.NS") 
div = INFY.read() 
div = soup(div,'html.parser') 
div = div.find("table",{"class":"W(100%) M(0)"}) 
table_rows = div.findAll("tr") 
print(table_rows) 

for tr in table_rows: 
    td = tr.findAll('td') 
    row = [i.text for i in td] 
    print(row) 

以下はコード実行後の結果です。

['30-Mar-2017', '1,034.00', '1,035.90', '1,020.25', '1,025.50', '1,010.02', '60,78,590'] 
['29-Mar-2017', '1,034.30', '1,041.50', '1,025.85', '1,031.85', '1,016.27', '34,90,593'] 
['28-Mar-2017', '1,031.50', '1,039.00', '1,030.05', '1,035.15', '1,019.52', '23,98,398'] 

答えて

2
pd.DataFrame([[i.text for i in tr.findAll('td')] for tr in table_rows]) 

あなたは、その後に同等の数値にテキスト値を変換する必要があります。

+0

ありがとう、それは働いた。 :)。私はこの2日間最後に苦労しています。 –

関連する問題