我正在学习python并使用BeautifulSoup来抓取一些网页。我要做的是找到第一个'td'的子'a',提取href并将其添加到列表中。如何以及在何处将href添加到单元格文本中?
import urllib2
from BeautifulSoup import BeautifulSoup
def listify(table):
"""Convert an html table to a nested list"""
result = []
rows = table.findAll('tr')
for row in rows:
result.append([])
cols = row.findAll('td')
for col in cols:
strings = [_string.encode('utf8') for _string in col.findAll(text=True)]
text = ''.join(strings)
result[-1].append(text)
return result
答案 0 :(得分:1)
td
:改用row.find('td')
;它将返回第一场比赛a
,使用.find('a')
查找第一个。dict
,使用item访问来获取href
等元素属性。一起,这使得:
cell = row.find('td')
link = cell.find('a') if cell else None
if link is not None and 'href' in link:
result[-1].append(link['href'])