在我的HTML代码中,我有8个表。以下是我试图获取它们的方法:
url ="http://www.uefa.com/worldcup/season=2014/standings/"
r = requests.get(url)
soup = BeautifulSoup(r.content)
table = soup.find("table")
这段代码只给我第一张表。现在采取行动:
rows = table.findAll('tr')
data = [[td.text.strip().encode("utf-8") for td in tr.findAll("td")] for tr in rows]
head = [[th.text.strip().encode("utf-8") for th in tr.findAll("th")] for tr in rows]
for i in data:
if i:
flag = i[1][:3] + ".png"
i.insert(1, Datas(i, "http://img.uefa.com/imgml/flags/18x18/" + flag))
return render(request, 'Titles.html', {"data": data})
操作结束后,我想知道如何开始使用相同的变量提取第二个表?当然,我可以添加更多变量,例如data1
,data2
,head1
,head2
等等。但是我不想重复自己。
那么也许你可以帮助我并找到更好的方法来做到这一点?
答案 0 :(得分:1)
你可能想要这样的东西:
import requests
from bs4 import BeautifulSoup
soup = BeautifulSoup(requests.get(url).text)
tables = soup.find_all('table') # this returns 8 tables
print len(tables)
for table in tables:
for tr in table.find_all('tr'):
print tr.text
print
如果您尝试该代码,您可以看到从每个表中获取内容,