csv加header python_爬取NBA球员薪资数据【Python数据分析百例连载】
通过Pandas模块也可以实现简单的爬虫。主要使用Pandas的read_html方法,该方法用于导入带有table标签的网页表格数据,语法如下:pandas.read_html(io,match='.+',flavor=None,header=None,index_col=None,skiprows=None,attrs=None,parse_dates=False,thousands=',',
通过Pandas模块也可以实现简单的爬虫。主要使用Pandas的read_html方法,该方法用于导入带有table标签的网页表格数据,语法如下:
pandas.read_html(io,match='.+',flavor=None,header=None,index_col=None,skiprows=None,attrs=None,parse_dates=False,thousands=',',encoding=None,decimal='.',converters=None,na_values=None,keep_default_na=True,displayed_only=True)
主要参数说明:
- io:字符串,文件路径,也可以是URL链接。网址不接受https,可以尝试去掉https中的s后爬取,如http://www.mingribook.com。
- match:正则表达式,返回与正则表达式匹配的表格。
- flavor:解析器默认为“lxml”。
- header:指定列标题所在的行,列表list为多重索引。
- index_col:指定行标题对应的列,列表list为多重索引。
- encoding:字符串,默认为None,文件的编码格式。
- 返回值:返回一个DataFrame。
使用read_html方法前,首先要确定网页表格是否为table类型。例如,NBA球员薪资网页(http://www.espn.com/nba/salaries),右键单击该网页中的表格,在弹出的菜单中选择“检查元素”,查看代码中是否含有表格标签<table>…</table>的字样,如图所示,确定后才可以使用read_html方法。

下面使用read_html()方法导入NBA球员薪资数据,程序代码如下:
import pandas as pd
df = pd.DataFrame()
url_list = ['http://www.espn.com/nba/salaries/_/seasontype/4']
for i in range(2, 13):
url = 'http://www.espn.com/nba/salaries/_/page/%s/seasontype/4' % i
url_list.append(url)
#遍历网页中的table读取网页表格数据
for url in url_list:
df = df.append(pd.read_html(url), ignore_index=True)
#列表解析:遍历dataframe第3列,以子字符串$开头
df = df[[x.startswith('$') for x in df[3]]]
print(df)
df.to_csv('NBA.csv',header=['RK','NAME','TEAM','SALARY'], index=False)
运行程序,输出结果如图所示。

注意:运行程序,如果出现ImportError: lxml not found, please install it错误提示信息,则需要安装lxml模块。
人人都应掌握的数据分析技能你究竟了解多少?更多数据处理、数据分析内容可参阅《Python数据分析从入门到实践》全彩版
《Python数据分析从入门到实践(全彩版)》(明日科技(MingRi Soft))【摘要 书评 试读】- 京东图书item.jd.com

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)