原因是什麼?該表的HTML是 - 不要問我爲什麼 - 在評論字段中。因此,請從評論中挖掘HTML,將變成湯,然後以通常的方式挖出湯。
>>> import requests
>>> page = requests.get('http://www.baseball-reference.com/players/a/alberma01.shtml').text
>>> from bs4 import BeautifulSoup
>>> table_code = page[page.find('<table class="sortable stats_table" id="br-salaries"'):]
>>> soup = BeautifulSoup(table_code, 'lxml')
>>> rows = soup.findAll('tr')
>>> len(rows)
14
>>> for row in rows[1:]:
... row.text
...
'200825Baltimore\xa0Orioles$395,000? '
'200926Baltimore\xa0Orioles$410,000? '
'201027Baltimore\xa0Orioles$680,0002.141 '
'201128Boston\xa0Red\xa0Sox$875,0003.141 '
'201229Boston\xa0Red\xa0Sox$1,075,0004.141contracts '
'201330Cleveland\xa0Indians$1,750,0005.141contracts '
'201431Houston\xa0Astros$2,250,0006.141contracts '
'201532Chicago\xa0White\xa0Sox$1,500,0007.141contracts '
'201532Houston\xa0Astros$200,000Buyout of contract option'
'201633Chicago\xa0White\xa0Sox$2,000,0008.141 '
'201734Chicago\xa0White\xa0Sox$250,000Buyout of contract option'
'2017 StatusSigned thru 2017, Earliest Free Agent: 2018'
'Career to date (may be incomplete)$11,385,000'
編輯:我發現這是一個註釋字段通過在Chrome瀏覽器中打開的HTML頁面,再往下看,通過它所需的表。這是我發現的。請注意開放<!--
。
什麼表明它是在意見欄?我知道'table_code = page [page.find(
我已經爲您的第一個查詢編輯了我的答案。至於第二,這不是一個列表。該符號表示從字符串中進行選擇。首先我找到表格從註釋開始的位置,然後選擇以表格開頭部分開始的註釋部分。 –
相關問題