我想刮一张使用美丽的汤的html表,并将其导入到熊猫 - http://www.baseball-reference.com/teams/NYM/2017.shtml - “团队击球”表。用美丽的汤刮到熊猫的HTML表格
查找表是没有问题的:
table = soup.find('div', attrs={'class': 'overthrow table_container'})
table_body = table.find('tbody')
查找数据行是不是一个问题或者:
for i in table.findAll('tr')[2]: #increase to 3 to get next row in table...
print(i.get_text())
而且我甚至可以找到头名:
table_head = table.find('thead')
for i in table_head.findAll('th'):
print(i.get_text())
现在我很难将所有东西放在一起放入数据框中。这是我到目前为止:
header = []
for th in table_head.findAll('th'):
key = th.get_text()
header.append(key)
row= []
for tr in table.findAll('tr')[2]:
value = tr.get_text()
row.append(value)
od = OrderedDict(zip(head, row))
df = pd.DataFrame(d1, index=[0])
这只适用于一次一行。我的问题是如何在同一时间对表格中的每一行执行此操作?
感谢您的好评。在这一行中是否有“[row]”的名称:table_row = table.findAll('tr')[row] ---我从来没有见过像这样在范围之前使用它。 – e9e9s
你非常欢迎。这只是这种情况下的索引。等于'table_row = table.findAll('tr')[0]'或'table_row = table.findAll('tr')[1]' – bernie
那么如果'[row]'被排除在这一行之外,迭代'table_row'你将无法做到? – e9e9s