1. 程式人生 > 其它 >pandas.read_html()讀取網頁表格類資料

pandas.read_html()讀取網頁表格類資料

技術標籤:爬蟲python

目標網站
http://www.tianqihoubao.com/lishi/wanzhou/month/201101.html

表格類資料格式樣子

大致網路結構

<table class="..." id="..." ...>
	 ...
     <tbody>
        <tr>
            <td>...</td>
        </tr>
        <tr>...</tr>
        <tr>
...</tr> <tr>...</tr> <tr>...</tr> ... <tr>...</tr> <tr>...</tr> </tbody> </table>
<table></table> 表示整體表格
 <tr>...</tr>表示一行
 <td>...</td>表示某一格的資料

程式碼

從HTML檔案讀取資料

如上所示,Pandas可以直接用DataFrame生成HTML表格,同樣可以讀取HTML檔案。read_html()函式解析HTML頁面,尋找HTML表格。如果找到,就將其轉換為可以直接用於資料分析的DataFrame物件。

即使只有一個表格,read_html()函式也會返回一個DataFrame列表

import pandas as pd

dates=[201901,201902,201903,201904,201905,201906,201907,201908,201909,201910,201911,201912]
print(dates)# 構造出日期序列  便於之後構造url

for i in range(len(dates)
): df = pd.read_html(f'http://www.tianqihoubao.com/lishi/wanzhou/month/{dates[i]}.html', encoding='gbk', header=0)[0] print(df) if i == 0: df.to_csv('2019年萬州天氣預報資料.csv', mode='a+', index=False) # mode='a+'追加寫入 i += 1 else: df.to_csv('2019年萬州天氣預報資料.csv', mode='a+', index=False, header=False) print('結束')

換一個網站
http://data.eastmoney.com/hsgt/top10.html

import pandas as pd
df = pd.read_html(f'http://data.eastmoney.com/hsgt/top10.html', encoding='gbk')[0]
print(df)

一些複雜網站無法讀取。
能讀取就讀,不能讀就嘗試爬蟲吧
在這裡插入圖片描述