利用pandas庫中的read_html方法抓取網頁中常見的表格型數據

read_html返回一個DataFrame對象的列表(list).html

  1. 讀取URL中,第N個表格。須要分析html代碼。ide

    import pandas as pd
    url = 'http://fx.cmbchina.com/Hq/'
    tb = pd.read_html(url,encoding='utf-8')[1]    #經觀察發現所需表格是網頁中第2個表格,故爲[1]
    print(tb)

    輸出以下:url

    [        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  查看歷史>>]
  2. 讀取URL,匹配一個包含特殊字符串的表
    import pandas as pd
    url = 'http://fx.cmbchina.com/Hq/'
    tb = pd.read_html(url,match= '交易幣')
    print(tb)

    輸出和前面相同。spa

3.讀取URL,匹配<table>標籤包含某屬性的表code

<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文件htm

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)
相關文章
相關標籤/搜索