html 表格table点一下变色_三行代码爬取网页table

689abbaab408ee38336256c6943a5bde.png

之前逛论坛,突然看到一个很有意思的爬虫,就是利用Pandas里的read_html爬取网页中table。

首先,我们介绍一下这个网页http://www.weather.com.cn/textFC/hb.shtml

bc30f3c72e80f3e9f14d5a6b52317f64.png

我们看到这个网址有很多地区的天气,看起来很像是表格形式,那我们就进一步去验证是否是表格。如下图,我们先打开检查(F12),点击1,然后点击2的地方,找到表格所在,但现在依然是div,不是table,再继续点击展开div,最后找到了table,说明这个是table,那我们就可以爬取表格了。

83b595ffadf2045867fad3d102260360.png

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

dbcd61874e5768a487961b036f6ed837.png

52ae54988658da09c5ecc979d6794117.png
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值