![689abbaab408ee38336256c6943a5bde.png](https://img-blog.csdnimg.cn/img_convert/689abbaab408ee38336256c6943a5bde.png)
之前逛论坛,突然看到一个很有意思的爬虫,就是利用Pandas里的read_html爬取网页中table。
首先,我们介绍一下这个网页http://www.weather.com.cn/textFC/hb.shtml
![bc30f3c72e80f3e9f14d5a6b52317f64.png](https://img-blog.csdnimg.cn/img_convert/bc30f3c72e80f3e9f14d5a6b52317f64.png)
我们看到这个网址有很多地区的天气,看起来很像是表格形式,那我们就进一步去验证是否是表格。如下图,我们先打开检查(F12),点击1,然后点击2的地方,找到表格所在,但现在依然是div,不是table,再继续点击展开div,最后找到了table,说明这个是table,那我们就可以爬取表格了。
![83b595ffadf2045867fad3d102260360.png](https://img-blog.csdnimg.cn/img_convert/83b595ffadf2045867fad3d102260360.png)
![a5f81585a2e1fddc7fa343ef76a676d9.png](https://img-blog.csdnimg.cn/img_convert/a5f81585a2e1fddc7fa343ef76a676d9.png)
现在开始进行爬虫
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)
最后,我们可以看一下表格内容。
![c608ed01e98b4753822726c7afc8f6f1.png](https://img-blog.csdnimg.cn/img_convert/c608ed01e98b4753822726c7afc8f6f1.png)
![dbcd61874e5768a487961b036f6ed837.png](https://img-blog.csdnimg.cn/img_convert/dbcd61874e5768a487961b036f6ed837.png)
![52ae54988658da09c5ecc979d6794117.png](https://img-blog.csdnimg.cn/img_convert/52ae54988658da09c5ecc979d6794117.png)