<p>如果只想从img标记中选择alt,只需从表中选择img标记并提取alt属性:</p>
<pre><code>right_table = soup.find('table', class_='table table-bordered table-striped table-condensed movers-table')
print([img["alt"] for img in right_table.select("img[alt]")])
['ORI', 'PRM', '8ED', 'EX', 'TSB', 'WL', 'ROE', 'ZEN', 'FUT', 'FUT']
</code></pre>
<p>在您自己的循环中,当您似乎只需要一个元素时,您使用的是findAll,如果您只想要第一个元素,那么就使用find<code>row.find('span')</code>等。。并且<code>row.find('img')["alt"]</code>将为每一行提供alt值,查看页面,每个tr只有一个,因此您绝对不需要findAll。在</p>
<p>如果要在本地重新创建表,我会将数据放入dict:</p>
^{pr2}$
<p>输出:</p>
<pre><code>{1: [u'+8.78', u'68.03', u'+15.00%', u"Jace, Vryn's Prodigy", 'ORI'],
2: [u'+2.47', u'47.96', u'+5.00%', u"Gaea's Cradle", 'PRM'],
3: [u'+1.95', u'20.37', u'+11.00%', u'Firestorm', 'WL'],
4: [u'+1.73', u'23.91', u'+8.00%', u'Force of Will', 'VMA'],
5: [u'+1.35', u'40.88', u'+3.00%', u'Ensnaring Bridge', '8ED'],
6: [u'+1.28', u'44.02', u'+3.00%', u'City of Traitors', 'EX'],
7: [u'+1.15', u'41.98', u'+3.00%', u'Time Walk', 'VMA'],
8: [u'+1.01', u'28.68', u'+4.00%', u'Daze', 'NE'],
9: [u'+1.01', u'19.96', u'+5.00%', u"Goryo's Vengeance", 'BOK'],
10: [u'+1.00', u'3.99', u'+33.00%', u'Unearth', 'UL']}
</code></pre>
<p>您将看到它与当前的表数据完全匹配,如果您希望所有获奖者只需将url更改为<code>http://www.mtggoldfish.com/movers-details/online/all/winners/dod</code></p>
<p>或者,如果您想将字段拆分,只需拉firs增量:</p>
<pre><code>for row in right_table.select("tr"):
increment = row.find('span',{"class":'increase'})
if increment:
increment = increment.text
place = int(row.td.text)
title = row.select("a[data-full-image]")[0].text
alt = (row.find("img")["alt"])
table_dict[place] = {"title":title,"alt":alt, "inc":increment}
from pprint import pprint as pp
pp(table_dict)
</code></pre>
<p>输出:</p>
<pre><code>{1: {'alt': 'ORI', 'inc': u'+8.78', 'title': u"Jace, Vryn's Prodigy"},
2: {'alt': 'PRM', 'inc': u'+2.47', 'title': u"Gaea's Cradle"},
3: {'alt': 'WL', 'inc': u'+1.95', 'title': u'Firestorm'},
4: {'alt': 'VMA', 'inc': u'+1.73', 'title': u'Force of Will'},
5: {'alt': '8ED', 'inc': u'+1.35', 'title': u'Ensnaring Bridge'},
6: {'alt': 'EX', 'inc': u'+1.28', 'title': u'City of Traitors'},
7: {'alt': 'VMA', 'inc': u'+1.15', 'title': u'Time Walk'},
8: {'alt': 'NE', 'inc': u'+1.01', 'title': u'Daze'},
9: {'alt': 'BOK', 'inc': u'+1.01', 'title': u"Goryo's Vengeance"},
10: {'alt': 'UL', 'inc': u'+1.00', 'title': u'Unearth'}}
</code></pre>