我使用BeautifulSoup4湊一個頁面,下面的功能是給我2個問題:BeautifulSoup:很難獲得正確的表
def getTeamRoster(teamURL):
html = urllib.request.urlopen(teamURL).read()
soup = BeautifulSoup(html)
teamPlayers = []
#second table
corebody = soup.find(id = "corebody")
teamTable = corebody.table.next_sibling.next_sibling.next_sibling.next_sibling
print(teamTable)
tableBody = teamTable.find('tbody')
print(tableBody)
tableRows = tableBody.findAll('tr')
1)當我打電話「.next_sibling」只有4次(如上),我似乎得到正確的表。但是,我試圖訪問的表標籤是#corebody標識中的第6個表。當我調用「.next_sibling」5次時,我從BeautifulSoup得到-1,表示我所請求的表不存在?我認爲在這種情況發生時你通常會得到None。任何想法爲什麼調用「.next_sibling」5次沒有按預期工作?
網址是http://modules.ussquash.com/ssm/pages/leagues/Team_Information.asp?id=11325
2)tableBody = teamTable.find( 'TBODY') 是給我一些麻煩。當我打印tableBody時,我得到無,但我不知道爲什麼會發生這種情況(我正在訪問的表中肯定有一個標籤)。
想法?
感謝您的幫助, bclayman
'tbody'可能通過瀏覽器生成的。嘗試保存實際的html文件而不是查看它。 – tdihp