read_html返回一个DataFrame对象的列表(list).

  1. 读取URL中,第N个表格。需要分析html代码。
import pandas as pd
url = 'http://fx.cmbchina.com/Hq/'
tb = pd.read_html(url,encoding='utf-8')[1]    #经观察发现所需表格是网页中第2个表格,故为[1]
print(tb)

输出如下:

[        0      1    2       3       4       5       6         7       8
0     交易币  交易币单位  基本币   现汇卖出价   现钞卖出价   现汇买入价   现钞买入价        时间   汇率走势图
1      港币    100  人民币   91.50   91.50   91.14   90.50  20:32:16  查看历史>>
2    新西兰元    100  人民币  417.97  417.97  414.63  401.52  20:32:16  查看历史>>
3   澳大利亚元    100  人民币  426.07  426.07  422.67  409.30  20:32:16  查看历史>>
4      美元    100  人民币  709.76  709.76  706.57  700.91  20:32:16  查看历史>>
5      欧元    100  人民币  777.71  777.71  771.51  747.11  20:32:16  查看历史>>
6    加拿大元    100  人民币  501.68  501.68  497.68  481.94  20:32:16  查看历史>>
7      英镑    100  人民币  849.14  849.14  842.38  815.74  20:32:16  查看历史>>
8      日元    100  人民币  6.4756  6.4756  6.4240  6.2208  20:32:16  查看历史>>
9    新加坡元    100  人民币  494.28  494.28  490.34  474.83  20:32:16  查看历史>>
10   瑞士法郎    100  人民币  731.75  731.75  725.91  702.96  20:32:16  查看历史>>]
  1. 读取URL,匹配一个包含特殊字符串的表
import pandas as pd
url = 'http://fx.cmbchina.com/Hq/'
tb = pd.read_html(url,match= '交易币')
print(tb)

输出和前面相同。

3.读取URL,匹配<table>标签包含某属性的表

<table cellpadding="0" cellspacing="1" width="740" align="center" class="data">
...</table>
import pandas as pd
url = 'http://fx.cmbchina.com/Hq/'
tb = pd.read_html(url,attrs = {'class': 'data'},encoding='utf-8')
print(tb)

4.查询结果,写入csv文件

import pandas as pd
import csv

url = 'http://fx.cmbchina.com/Hq/'
tb = pd.read_html(url,attrs = {'class': 'data'},encoding='utf-8')
tb[0].to_csv(r'1.csv', mode='a', encoding='utf-8', header=1, index=0)