Вы можете проверить, совпадает ли источник изображения с изображением галочки ... Таким образом, вы не будете неправильно отмечать какое-либо изображение как галочку.
tick = 'data:image/gif;base64,R0lGODlhAQABAIABAAAAAP///yH5BAEAAAEALAAAAAABAAEAQAICTAEAOw%3D%3D'
rows = champion_table.find_all('tr')[1:]
champs = []
for row in rows:
data = []
links = row.find_all('a')
for link in links[::2]:
data.append(link['title'])
for td in row.find_all('td')[1:]: # [1:] to ignore profile picture
try:
src = td.find('img')['src']
if src == tick: # if the image's src matches the tick images src then append tick
data.append('tick')
else:
data.append('none')
except: # if src can't be found then append none
data.append('none')
champs.append(data)
Вывод:
[['Aatrox', 'tick', 'none', 'none', 'none', 'none', 'none'],
['Ahri', 'none', 'none', 'tick', 'none', 'none', 'none'],
['Akali', 'tick', 'none', 'tick', 'none', 'none', 'none'],
['Alistar', 'none', 'none', 'none', 'none', 'tick', 'none'],
['Amumu', 'none', 'tick', 'none', 'none', 'none', 'none'],
['Anivia', 'none', 'none', 'tick', 'none', 'none', 'none'],
['Annie', 'none', 'none', 'tick', 'none', 'none', 'none'],
['Aphelios', 'none', 'none', 'none', 'none', 'none', 'none'],
['Ashe', 'none', 'none', 'none', 'tick', 'none', 'none'],
['Aurelion Sol', 'none', 'none', 'tick', 'none', 'none', 'none'],
['Azir', 'none', 'none', 'tick', 'none', 'none', 'none'],
['Bard', 'none', 'none', 'none', 'none', 'tick', 'none'],
['Blitzcrank', 'none', 'none', 'none', 'none', 'tick', 'none'],
['Brand', 'none', 'none', 'none', 'none', 'tick', 'none'],
['Braum', 'none', 'none', 'none', 'none', 'tick', 'none'],
['Caitlyn', 'none', 'none', 'none', 'tick', 'none', 'none'],
['Camille', 'tick', 'none', 'none', 'none', 'none', 'none'],
['Cassiopeia', 'none', 'none', 'tick', 'none', 'none', 'none'],
["Cho'Gath", 'tick', 'none', 'none', 'none', 'none', 'none'],
... and so on
И затем вы можете просто сделать:
import pandas as pd
champs = pd.DataFrame(champs)
, чтобы получить фрейм данных.
И champs.columns = ['champ','top','jungle','middle','bottom','support','unplayed']
, чтобы назвать столбцы:
champ top jungle middle bottom support unplayed
0 Aatrox tick none none none none none
1 Ahri none none tick none none none
2 Akali tick none tick none none none
3 Alistar none none none none tick none
4 Amumu none tick none none none none
... ... ... ... ... ... ... ...
144 Zed none none tick none none none
145 Ziggs none none tick none none none
146 Zilean none none none none tick none
147 Zoe none none tick none none none
148 Zyra none none none none tick none