【问题标题】:web scraping : how to scrape one particular table body out of many table bodies?网页抓取:如何从多个表格主体中抓取一个特定的表格主体?
【发布时间】:2019-10-16 12:28:38
【问题描述】:
【问题讨论】:
标签:
web-scraping
beautifulsoup
【解决方案1】:
它是 tbody 标记的,您可以将以下 css 选择器与 bs4 一起使用。然后用 table 标签包装并传递给 pandas 以很好地打印。我正在使用 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()