import pandas as pd

pd.set_option('display.max_columns', None)  # 显示的最大行数  None:全部显示
pd.set_option('display.max_rows', None)  # 显示的最大列数  None:全部显示
pd.set_option('expand_frame_repr', False)  # True就是可以换行显示。设置成False的时候不允许换行
pd.set_option('display.width', 200)  # 横向最多显示多少个字符, 一般80不适合横向的屏幕,平时多用200.
pd.set_option('precision', 10)  # 显示小数点

url = "http://fund.eastmoney.com/fund.html"
data = pd.read_html(url, attrs={'id': 'oTable'})  # 'id': 'oTable':获取id属性是oTable表格
# 查看表格数量
tablenum = len(data)
print(tablenum)
print(data)


'''
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: io:接收网址、文件、字符串 str, path object 或 file-like objectURL,file-like对象或包含HTML的原始字符串。请注意,lxml仅接受http,ftp和文件url协议。如果您的网址以'https'您可以尝试删除's'。
match: str 或 compiled regular expression, 可选参数将返回包含与该正则表达式或字符串匹配的文本的表集。除非HTML非常简单,否则您可能需要在此处传递非空字符串。默认为“。+”(匹配任何非空字符串)。默认值将返回页面上包含的所有表。此值转换为正则表达式,以便Beautiful Soup和lxml之间具有一致的行为。
flavor: str 或 None要使用的解析引擎。‘bs4’和‘html5lib’彼此同义,它们都是为了向后兼容。默认值None尝试使用lxml解析,如果失败,它会重新出现bs4+html5lib。
header: 指定列名所在的行  int 或 list-like 或 None, 可选参数该行(或MultiIndex)用于创建列标题。
index_col: int 或 list-like 或 None, 可选参数用于创建索引的列(或列列表)。
skiprows: int 或 list-like 或 slice 或 None, 可选参数解析列整数后要跳过的行数。从0开始。如果给出整数序列或切片,将跳过该序列索引的行。请注意,单个元素序列的意思是“跳过第n行”,而整数的意思是“跳过n行”。
attrs: 传递一个字典,用其中的属性筛选出特定的表格  dict 或 None, 可选参数这是属性的词典,您可以传递该属性以用于标识HTML中的表。在传递给lxml或Beautiful Soup之前,不会检查它们的有效性。但是,这些属性必须是有效的HTML表属性才能正常工作。例如, attrs = {'id': 'table'} 是有效的属性字典,因为‘id’ HTML标记属性是任何HTML标记的有效HTML属性,这个文件。attrs = {'asdf': 'table'} 不是有效的属性字典,因为‘asdf’即使是有效的XML属性,也不是有效的HTML属性。可以找到有效的HTML 4.01表属性这里。可以找到HTML 5规范的工作草案这里。它包含有关现代Web表属性的最新信息。
parse_dates: bool, 可选参数参考read_csv()更多细节。
thousands: str, 可选参数用来解析成千上万个分隔符。默认为','。
encoding: str 或 None, 可选参数用于解码网页的编码。默认为NoneNone保留先前的编码行为,这取决于基础解析器库(例如,解析器库将尝试使用文档提供的编码)。
decimal: str, 默认为 ‘.’可以识别为小数点的字符(例如,对于欧洲数据,请使用“,”)。
converters: dict, 默认为 None用于在某些列中转换值的函数的字典。键可以是整数或列标签,值是采用一个输入参数,单元格(而非列)内容并返回转换后内容的函数。
na_values: iterable, 默认为 None自定义NA值。
keep_default_na: bool, 默认为 True如果指定了na_values并且keep_default_na为False,则默认的NaN值将被覆盖,否则将附加它们。
displayed_only: bool, 默认为 True是否应解析具有“display:none”的元素。

最后, read_html() 仅支持静态网页解析,你可以通过其他方法获取动态页面加载后response.text 传入 read_html() 再获取表格数据。
'''