Python 为什么对象没有属性“tbody”?

Python 为什么对象没有属性“tbody”?,python,pandas,dataframe,beautifulsoup,Python,Pandas,Dataframe,Beautifulsoup,由于我的工作原因,我只是一个python初学者,主要学习数据抓取,我正试图找到没有属性“tbody”的原因。在HTML中的tbody标记中,很明显,它找不到。这只是一个简单的维基百科数据抓取脚本,下面是代码,有人能帮我吗 导入请求 从bs4导入BeautifulSoup 作为pd进口熊猫 URL='1〕https://en.wikipedia.org/wiki/List_of_countries_by_real_GDP_growth_rate' response=requests.getURL

由于我的工作原因,我只是一个python初学者,主要学习数据抓取,我正试图找到没有属性“tbody”的原因。在HTML中的tbody标记中,很明显,它找不到。这只是一个简单的维基百科数据抓取脚本,下面是代码,有人能帮我吗

导入请求 从bs4导入BeautifulSoup 作为pd进口熊猫 URL='1〕https://en.wikipedia.org/wiki/List_of_countries_by_real_GDP_growth_rate' response=requests.getURL soup=BeautifulSoupresponse.content,“html.parser” 列=[“世界排名”、“国家”、“实际GDP增长率%”] table=soup.find'table',{'class':'wikitable sortable jquery tablesorter'}.tbody df=pd.DataFramecolumns=columns trs=表格。查找所有“tr” 对于trs中的tr: tds=tr.find_all'td' 行=[td.text.替换“\n”,表示tds中的td] df=df.appendpd.Seriesrow,index=columns,ignore\u index=True df.to_csv'real gdp growth rate.csv',index=False
如果你检查F12 aka。开发工具它将始终在任何表上显示一个tbody,即使原始代码中没有。这就足够了:

soup.find'table',{'class':'wikitable sortable jquery tablesorter'}.findAll'tr'
是的,但当我运行脚本时,它没有找到它。为什么不使用pandas read_html来获取所有表?@QHarr谢谢,你能给我一点指导吗?将pandas作为pd:tables=pd导入。read_html'然后使用索引检索所需的表。我再次得到了这个AttributeError:'NoneType'对象没有属性'findAll',我想主要的问题是在表类中?你能检查soup.find'table',{'class':'wikitable sortable jquery tablesorter'}是否不给你任何信息吗?这意味着选择器不正确。如果没有,请尝试以下操作:findAll'table'[0],看看它是否可以在页面上获得一个表。是的,非常感谢,尽管我仍然有一些错误,但它很有用。错误是回溯最后一次调用:文件realgdpgrowthrate.py,第17行,在df=df.appendpd.Seriesrow中,index=columns,ignore\u index=True文件C:\Users\eren\AppData\Local\Programs\Python\Python37\lib\site packages\pandas\core\series.py,第249行,在init.formatval=lendata中,ind=lendex值错误:传递值的长度为0,指数为3