1
以下のコードでは、nba.comからの演奏データを正常にスクラップし、そのデータをExcelファイルに書き込みます。一握りのゲームには効果的ですが、シーズン分のデータを一掃すると非常に遅くなります。Pythonでより効率的なWebスクレイピング?
データをより効率的に削り取るための実装がありますか?全シーズンで500K以上のデータ行があることを理解していますので、雷のスピードは期待できませんが、コードを改善する方法があれば、どうやってどうやって学びたいのですか。
ご協力いただきありがとうございます!
ids = [str(i) for i in range(21500001,215)]
import requests
import pandas as pd
dfs = []
for id in ids:
game_url = 'http://stats.nba.com/stats/playbyplayv2?EndPeriod=10&EndRange=55800&GameID=00' + id + '&RangeType=2&Season=2015-16&SeasonType=Regular+Season&StartPeriod=1&StartRange=0'
u_a = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36"
response = requests.get(game_url, headers={"USER-AGENT":u_a})
response.raise_for_status()
game = response.json()['resultSets'][0]['rowSet']
final = pd.DataFrame(game)
dfs.append(final)
finalgame = pd.concat(dfs)
dfs2 = pd.DataFrame(finalgame)
dfs2.to_excel("game15-16.xlsx")
これをcvsファイルにエクスポートするのはどうですか?限り、csvを読むのが早いと、csvの書き込みも速くなりますか? – Marine1