[英]Load Scraped Table via BS4 into Pandas Dataframe
我正试图从这里获取任何Basic Box Score Stat或Advanced Box Score Stats表
我尝试过这样的事情:
url = "http://www.basketball-reference.com/boxscores/200112100LAC.html"
page = requests.get(url, headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'})
soup = BeautifulSoup(page.content, "html5lib")
table = soup.find('div', class_='overthrow table_container').find('table',class_='sortable stats_table')
df = pd.read_html(table)
print df
但是由于NoneType'对象错误,它不起作用。 有没有更好的方法来获取表格代码并将其放入数据框? 谢谢。
您可以使用read_html
返回所有已解析表中的DataFrame
列表:
df = pd.read_html('http://www.basketball-reference.com/boxscores/200112100LAC.html')[0] # or [1], [2]
print (df)
table
是BeautifulSoup中的标记对象,您应该将其转换为字符串并将其传递给pandas
prettify()
方法将Beautiful Soup解析树转换为格式良好的Unicode字符串,每个HTML / XML标记都在其自己的行上:
df = pd.read_html(table.prettify())
在pd.read_html()中直接传递汤使用:
df = pd.read_html(driver.page_source)
这里的驱动程序是一个webdriver(在我的情况下为chrome)
webdriver中打开的链接将传递给pandas pd.read_html()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.