BeautifulSoup初始化类型错误--故障排除



错误指向bs4源代码的这一行

我使用的是一个依赖BeautifulSoup的第三方模块。我用它来创建NBA球员个人数据的DataFrame,然后将它们拼接成一个大的DataFrame。下面代码中的列表comp适用于一些DF,但随后出现TypeError: object of type 'NoneType' has no len()错误

相关代码:

import pandas as pd
from PandasBasketball.stats import player_stats
dfs = [player_stats(requests.get(url), "per_minute") for url in full_player_urls[600:]]
all_stats = pd.concat(dfs)
all_stats[::500]

我尝试过的东西:

  • 检查full_player_urls是否正确生成。是的。它是一个URL列表,比如:http://www.basketball-reference.com/players/b/burrobo01.html
  • 已验证player_stats()对URL是否正常工作:player_stats(requests.get('http://www.basketball-reference.com/players/b/bustida01.html'), "per_minute")以上内容正确地生成了从该网页上的表生成的DataFrame。这是按预期进行的

我的猜测是,站点服务器意识到您在短时间内发出了许多请求,并且在循环的某个时刻阻止了您。有几件事你可以做。最简单的就是在每次迭代后放一点时间延迟。如果这不起作用,请告诉我,我们可以稍微解决一下:

import pandas as pd
from PandasBasketball.stats import player_stats
import time
import random
import requests
dfs = []
for url in full_player_urls[600:]:     
dfs.append(player_stats(requests.get(url), "per_minute"))
x = random.uniform(0, 10) 
time.sleep(x)

all_stats = pd.concat(dfs)
all_stats[::500]

最新更新