Python中更高效的Web抓取?

Python中更高效的Web抓取?,python,performance,web-scraping,python-requests,Python,Performance,Web Scraping,Python Requests,我有下面的代码,它成功地从nba.com中逐场抓取数据,然后将数据写入excel文件。它适用于少数几场比赛,但在试图获取整个赛季的数据时,速度会变得非常缓慢 有什么我可以实现的方法可以更有效地抓取数据吗?我知道整个赛季都有超过500K行的数据,所以我并不期待闪电般的速度,但如果有任何方法可以改进我的代码,我肯定想学习如何改进 提前感谢您的帮助 ids = [str(i) for i in range(21500001,21501231)] import requests import pand

我有下面的代码,它成功地从nba.com中逐场抓取数据,然后将数据写入excel文件。它适用于少数几场比赛,但在试图获取整个赛季的数据时,速度会变得非常缓慢

有什么我可以实现的方法可以更有效地抓取数据吗?我知道整个赛季都有超过500K行的数据,所以我并不期待闪电般的速度,但如果有任何方法可以改进我的代码,我肯定想学习如何改进

提前感谢您的帮助

ids = [str(i) for i in range(21500001,21501231)]

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")

你应该分析一下,看看瓶颈在哪里。在铲运机中,瓶颈通常是网络。你可以通过使它平行来加快速度。例如,使用基于Twisted framework的来进行并发请求。

a将其导出到cvs文件怎么样?就读取csv而言,写入csv是否也会更快?