我正在尝试抓取网站中的特定表格-http://stats.espncricinfo.com/ci/engine/player/35320.html?class=2;template=results;type=batting
现在,有多个表彼此无法区分。我只想从那里刮一张桌子。我该怎么办?
我尝试使用find_all()
函数。但这仅列出了所有<tbody>
标签。
我只想刮擦突出显示的表主体。
答案 0 :(得分:0)
它带有tbody
标记,您可以在bs4中使用以下css选择器。然后用table
标签包裹并传递给熊猫以使其打印精美。我正在使用bs4 4.7.1
您也可以使用table = soup.select('tbody:contains(year)')
。
Python:
from bs4 import BeautifulSoup as bs
import requests
import pandas as pd
r = requests.get('http://stats.espncricinfo.com/ci/engine/player/35320.html?class=2;template=results;type=batting')
soup = bs(r.content, 'lxml')
table = soup.select('tbody:nth-child(7)')
headers = [item.text for item in soup.select('.headlinks th')]
df = pd.read_html('<table>' + str(table) + '</table>')[0]
df.columns = headers
df = df.dropna(how = 'all', axis=0).drop(['Span',''], axis=1)
print(df)
df.head()