我目前有一個問題試圖解析一個表到一個數組。美麗的湯,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