我目前有一个问题试图解析一个表到一个数组。美丽的汤,html表解析
我有一个简单的表(HERE),我需要用BS4解析并将单元格内容放入数组中。这里的难点在于单元格不包含文本,而是包含具有以下标题的图像: “确认”或“网站” - 这只是用户权利的内容。
如果你看一下上面的小提琴[其中包含的复选框我跳过一行一个,那些我可以毫无问题摘录],我需要做的是分析它以这样的方式所产生的阵列变成:
Array1[0] = User1,Confirm,Confirm,Site,Confirm
Array1[1] = User2,Confirm,Confirm,Confirm,Confirm
Array1[2] = User3,Confirm,Confirm,Confirm,Confirm
Array1[3] = User4,Confirm,Site,Site,Confirm
然后我可以按我的意愿去做。 另一个复杂因素是,有时行数会有所不同,所以脚本应该能够适应这一点,并递归地从表中创建数组。
目前StackOverflow是我唯一的希望..我花了最后10个小时来做这件事,自己几乎没有成功,坦率地说我失去了希望。最近我得到的东西是提取封闭标签,但不能进一步解析一些奇怪的原因,也许这是bs4的嵌套限制?任何人都可以看看,看看他们是否能找到一种方法来做到这一点?或者至少解释如何到达那里?
var解释: rightml - 汤的表。
allusers = []
rows = rightml.findAll('tr')
for tr in rows:
cols = tr.findAll('td')
for td in cols:
if (td.find(title="Group")) or (td.find(title="User")):
text = ''.join(td.text.strip())
allusers.append(text)
print allusers
gifrights = []
rows7 = rightml.findAll('td')
#print rows7
for tr7 in rows:
cols7 = tr7.findAll('img')
for td7 in cols7:
if (td7.find(title="Confirm")) or (td7.find(title="Site")):
text = ''.join(td7.text.strip())
text2 = text.split(' ')
print text2
gifrights.append(text2)
我可能是遥远,此代码..但我把它醇”学院尝试。
会检查一次我是回家。但是,如果这种方法有效,你绝对可以拥有我所有的互联网! – Meh
工作得很好。谢谢! – Meh