<pre><code>soup = BeautifulSoup(your_data)
uploaded = []
link_data = []
for f in soup.findAll("font", {"class":"detDesc"}):
uploaded.append(f.contents[0])
link_data.append(f.a.contents[0])
</code></pre>
<p>例如,使用以下数据:</p>
^{pr2}$
<p>运行上面的代码可以得到:</p>
<pre><code>>>> print uploaded
[u'Uploaded 10-29&nbsp;18:50, Size 4.36&nbsp;GiB, ULed by ', u'Uploaded 10-26&nbsp;19:23, Size 1.16&nbsp;GiB, ULed by ']
>>> print link_data
[u'NLUPPER002', u'NLUPPER003']
</code></pre>
<p>要获得与前面提到的格式完全相同的文本,可以对列表进行后处理,也可以在循环本身中解析数据。例如:</p>
<pre><code>>>> [",".join(x.split(",")[:2]).replace("&nbsp;", " ") for x in uploaded]
[u'Uploaded 10-29 18:50, Size 4.36 GiB', u'Uploaded 10-26 19:23, Size 1.16 GiB']
</code></pre>
<hr/>
<p>另外,如果你是列表理解的粉丝,那么解决方案可以用一句话来表达:</p>
<pre><code>output = [(f.contents[0], f.a.contents[0]) for f in soup.findAll("font", {"class":"detDesc"})]
</code></pre>
<p>这将为您提供:</p>
<pre><code>>>> output # list of tuples
[(u'Uploaded 10-29&nbsp;18:50, Size 4.36&nbsp;GiB, ULed by ', u'NLUPPER002'), (u'Uploaded 10-26&nbsp;19:23, Size 1.16&nbsp;GiB, ULed by ', u'NLUPPER003')]
>>> uploaded, link_data = zip(*output) # split into two separate lists
>>> uploaded
(u'Uploaded 10-29&nbsp;18:50, Size 4.36&nbsp;GiB, ULed by ', u'Uploaded 10-26&nbsp;19:23, Size 1.16&nbsp;GiB, ULed by ')
>>> link_data
(u'NLUPPER002', u'NLUPPER003')
</code></pre>