更簡單 - 使用CSS selector獲得所需行 - 其位於具有table
leagueTable
類內部club-row
類tr
元素。爲每一行獲取所有單元格的文本。工作示例:
import urllib2
from bs4 import BeautifulSoup
soup = BeautifulSoup(urllib2.urlopen('http://www.premierleague.com/en-gb/matchday/league-table.html'))
for row in soup.select("table.leagueTable tr.club-row"):
cells = [cell.get_text(strip=True) for cell in row.find_all('td')]
print cells
打印:
[u'1', u'', u'(1)', u'Manchester City', u'5', u'5', u'0', u'0', u'11', u'0', u'11', u'15']
[u'2', u'', u'(2)', u'Leicester City', u'5', u'3', u'2', u'0', u'11', u'7', u'4', u'11']
[u'3', u'', u'(3)', u'Manchester United', u'5', u'3', u'1', u'1', u'6', u'3', u'3', u'10']
[u'4', u'', u'(4)', u'Arsenal', u'5', u'3', u'1', u'1', u'5', u'3', u'2', u'10']
[u'5', u'', u'(10)', u'West Ham United', u'5', u'3', u'0', u'2', u'11', u'6', u'5', u'9']
[u'6', u'', u'(5)', u'Crystal Palace', u'5', u'3', u'0', u'2', u'8', u'6', u'2', u'9']
[u'7', u'', u'(6)', u'Everton', u'5', u'2', u'2', u'1', u'8', u'5', u'3', u'8']
[u'8', u'', u'(7)', u'Swansea City', u'5', u'2', u'2', u'1', u'7', u'5', u'2', u'8']
[u'9', u'', u'(8)', u'Norwich City', u'5', u'2', u'1', u'2', u'8', u'9', u'-1', u'7']
[u'10', u'', u'(9)', u'Liverpool', u'5', u'2', u'1', u'2', u'3', u'6', u'-3', u'7']
[u'11', u'', u'(11)', u'Southampton', u'5', u'1', u'3', u'1', u'5', u'5', u'0', u'6']
[u'12', u'', u'(12)', u'Tottenham Hotspur', u'5', u'1', u'3', u'1', u'4', u'4', u'0', u'6']
[u'13', u'', u'(13)', u'Watford', u'5', u'1', u'3', u'1', u'3', u'4', u'-1', u'6']
[u'14', u'', u'(14)', u'West Bromwich Albion', u'5', u'1', u'2', u'2', u'3', u'6', u'-3', u'5']
[u'15', u'', u'(15)', u'Aston Villa', u'5', u'1', u'1', u'3', u'6', u'8', u'-2', u'4']
[u'16', u'', u'(16)', u'Bournemouth', u'5', u'1', u'1', u'3', u'6', u'9', u'-3', u'4']
[u'17', u'', u'(17)', u'Chelsea', u'5', u'1', u'1', u'3', u'7', u'12', u'-5', u'4']
[u'18', u'', u'(19)', u'Stoke City', u'5', u'0', u'2', u'3', u'3', u'7', u'-4', u'2']
[u'19', u'', u'(20)', u'Sunderland', u'5', u'0', u'2', u'3', u'6', u'11', u'-5', u'2']
[u'20', u'', u'(18)', u'Newcastle United', u'5', u'0', u'2', u'3', u'2', u'7', u'-5', u'2']
現在,我們可以清楚地看到 - 這是切爾西一個可怕的開始。
乾杯隊友!無法打印超過4行tho,具有諷刺意味的是阿森納。哈哈,希望對切爾西來說這樣。另外,如何將此代碼包含在HTML表格中,我的意思是這是一個簡單的過程,還是應該閱讀這些內容?預先感謝兄弟! – smokeyblunts
@smokeyblunts我們正在體驗bs4從當前python環境中自動選擇的[parser之間的差異](http://www.crummy.com/software/BeautifulSoup/bs4/doc/#differences-between-parsers)。安裝'html5lib'或'lxml'並且調用'BeaufitulSoup'構造函數爲'BeautifulSoup(urllib2.urlopen('http://premierleague.com/en-gb/matchday/league-table.html'),「html5lib」)'或'BeautifulSoup(urllib2.urlopen('http://premierleague.com/en-gb/matchday/league-table.html'),「lxml」)。 – alecxe
非常感謝讓我的生活更輕鬆!祝你有個好的一天。 – smokeyblunts