天天看點

html 表格table點一下變色_三行代碼爬取網頁table

html 表格table點一下變色_三行代碼爬取網頁table

之前逛論壇,突然看到一個很有意思的爬蟲,就是利用Pandas裡的read_html爬取網頁中table。

首先,我們介紹一下這個網頁http://www.weather.com.cn/textFC/hb.shtml

html 表格table點一下變色_三行代碼爬取網頁table

我們看到這個網址有很多地區的天氣,看起來很像是表格形式,那我們就進一步去驗證是否是表格。如下圖,我們先打開檢查(F12),點選1,然後點選2的地方,找到表格所在,但現在依然是div,不是table,再繼續點選展開div,最後找到了table,說明這個是table,那我們就可以爬取表格了。

html 表格table點一下變色_三行代碼爬取網頁table
html 表格table點一下變色_三行代碼爬取網頁table

現在開始進行爬蟲

import pandas as pd #導入相關庫 
# 找到自己想要的網頁表格網址 
url='http://www.weather.com.cn/textFC/hb.shtml' 
df = pd.read_html(url)[0]
# 若是隻儲存這一個  df.to_csv('路徑')
Out[3]: 
        0    1            2  ...            6            7    8
0   省/直轄市   城市  周三(5月13日)白天  ...  周三(5月13日)夜間  周三(5月13日)夜間  NaN
1   省/直轄市   城市         天氣現象  ...         風向風力         最低氣溫  NaN
2      北京   北京            晴  ...       南風 <3級           18   詳情
3      北京   海澱            晴  ...      南風 3-4級           18   詳情
4      北京   朝陽            晴  ...      南風 3-4級           19   詳情
5      北京   順義            晴  ...       南風 <3級           20   詳情
6      北京   懷柔            晴  ...       南風 <3級           17   詳情
7      北京   通州            晴  ...      南風 3-4級           16   詳情
8      北京   昌平            晴  ...      東南風 <3級           19   詳情
9      北京   延慶            晴  ...       東風 <3級           16   詳情
10     北京   豐台            晴  ...     西南風 3-4級           18   詳情
11     北京  石景山            晴  ...       南風 <3級           18   詳情
12     北京   大興            晴  ...      南風 3-4級           17   詳情
13     北京   房山            晴  ...       南風 <3級           17   詳情
14     北京   密雲            晴  ...       南風 <3級           18   詳情
15     北京  門頭溝            晴  ...      西南風 <3級           18   詳情
16     北京   平谷            晴  ...      東南風 <3級           17   詳情
17     北京   東城            晴  ...      南風 3-4級           19   詳情
18     北京   西城            晴  ...      南風 3-4級           18   詳情
[19 rows x 9 columns]
           

可以看出隻爬取了北京是19個城市5月13日的天氣資料,如果我們想要頁面所有的的表格,我們可以将df = pd.read_html(url)[0]改為df = pd.read_html(url),因為列印處理太大了,我們可以将其儲存到excel中:

df = pd.read_html(url)
for i in df:
    i.to_csv('C:/Users/Administrator/Desktop/python/項目/pandas爬取網頁表格table/hb_weather.csv',
             mode='a+', encoding='utf_8_sig', header=1,index=0)
           

最後,我們可以看一下表格内容。

html 表格table點一下變色_三行代碼爬取網頁table
html 表格table點一下變色_三行代碼爬取網頁table
html 表格table點一下變色_三行代碼爬取網頁table