html表格可以包含多个tbody,得到pandas.read_html()在HTML表包含多个<tbody>标记时工作...

我试图解析在http://www.swiftcodesbic.com找到的表,并使用Pandas自动获取表。在大多数情况下,这是很好的工作,但有一个表中有两个

标记,我认为这导致了一个问题。故障表可以找到here。在

我用来将html解析为pandas.DataFrame的代码是:

pandas.read_html(countryPage.text, attrs={"id":"t2"}, skiprows=1)[0]

其中countryPage是requests.get()对象。有什么我可以添加到pandas调用中以告诉它获取第二个

标记吗?或者,如果这不是问题所在,有人能解释一下是什么原因导致它返回“table not found”错误吗?提前谢谢。在

编辑

这是我目前使用的解决方案,但我还是想知道一个更“Python”的方法。在try:

tempDataFrame = pd.read_html(countryPage.text, attrs={"id":"t2"}, skiprows=1)[0]

except:

if "france" is in url: #pseudo-code

soup = BeautifulSoup(countryPage.text)

table = soup.find_all("table")[2].findAll('tbody')[1] #this will vary based on your situation

table = "

" #pandas needs the table tag to recognize a table

tempDataFrame = pd.read_html(table)[0]

再说一次,我很想知道如何更有效地完成这项工作。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值