gpt4 book ai didi

Python错误: 'NoneType' object has no attribute 'find_all'

转载 作者:行者123 更新时间:2023-12-01 05:16:12 27 4
gpt4 key购买 nike

我正在改编一个网络抓取程序,http://danielfrg.com/blog/2013/04/01/nba-scraping-data/#disqus_thread ,将 ESPN 的棒球数据抓取到 CSV 中。但是,当我运行第二段代码来编写游戏的 csv 时,我从以下代码部分中得到“NoneType”对象没有属性“find_all”错误

for index, row in teams.iterrows():
_team, url = row['team'], row['url']
r = requests.get(BASE_URL.format(row['prefix_1'], year, row['prefix_2']))
table = BeautifulSoup(r.text).table
for row in table.find_all("tr")[1:]: # Remove header
columns = row.find_all('td')
try:
_home = True if columns[1].li.text == 'vs' else False
_other_team = columns[1].find_all('a')[1].text
_score = columns[2].a.text.split(' ')[0].split('-')
_won = True if columns[2].span.text == 'W' else False

match_id.append(columns[2].a['href'].split('?id=')[1])
home_team.append(_team if _home else _other_team)
visit_team.append(_team if not _home else _other_team)
d = datetime.strptime(columns[0].text, '%a, %b %d')
dates.append(date(year, d.month, d.day))

我可以发布整个程序,但这是编译器读取错误的代码段。

完整的错误文本是

Traceback (most recent call last):
File "C:\Python27\Project Files\Game Parser.py", line 23, in <module>
for row in table.find_all("tr")[1:]: # Remove header
AttributeError: 'NoneType' object has no attribute 'find_all'

任何有关如何运行此代码的帮助将不胜感激。

最佳答案

该错误意味着您正在通过以下方式构建的table变量:

table = BeautifulSoup(r.text).table

返回None。并且 for row in table.find_all("tr")[1:]: on a None 会引发错误。

您可以检查相关url是否有您尝试访问的表格。您可以通过打印由以下语句构造的 url 来完成此操作:

BASE_URL.format(row['prefix_1'], year, row['prefix_2'])

然后在浏览器中访问此网址,检查其中是否有您感兴趣的表格。

关于Python错误: 'NoneType' object has no attribute 'find_all' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23186484/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com