EXCEL爬取数据(两种方法)

Excel爬取数据方式(两种)

一、Excel爬取数据的方式

1、简介

(1)背景:当有些网站出现表格型数据,如本文提供的(天气网站:历史天气查询|天气记录|天气预报|气温查询|过去天气_天气后报   NBA球队数据网站:http://www.stat-nba.com/),可直接用Excel爬取数据,本文将解释两种数据爬取的方式及可能出现的问题解决

(2)相关知识

A.F12进入开发者模式找到网页数据对应的URL(网络>标头可查看改网页的URL)

B.查看该网页的编码形式,并转换成excel能理解的编码形式

 

以上方例子,进入开发者模式后在<元素><head>可查看,该网页编码为UTF-8,则对应excel的编码为65001,常见的编码对应形式如下:

Utf8 = 65001;

Utf16 = 1200;

Ascii = 20127;

Unicode = 1200;

BigEndianUnicode = 1201;

Windows = 1252

2、Web.Page函数爬取数据

Web.Page(Text.FromBinary(Web.Contents([URL]),65001)){0}[Data]

Web.Page

以网页的方式加载数据

Web.Contents

将网页以二进制文件的格式下载

Text.FromBinary

将二进制文件转化为文本

65001

Text.FromBinary中UTF8编码参数

实验网址:ttp://www.stat-nba.com/

 

步骤如下:

第一步:录入数据

老鹰队:http://www.stat-nba.com/team/ATL.html公牛队:http://www.stat-nba.com/team/CHI.html公牛2018:http://www.stat-nba.com/team/stat_box_team.php?team=CHI&season=2018&col=pts&order=1&isseason=1公牛2019:http://www.stat-nba.com/team/stat_box_team.php?team=CHI&season=2019&col=pts&order=1&isseason=1篮网布鲁克林篮网队|数据nba|stat-nba|历史数据|技术统计|最全最专业中文nba数据库

总结发现:球队和赛季不同的URL有两处不同:一是team缩写不一样;二是season不一样,于是我们提前将缩写和年份录入excel表格

第二步:进入pq(power query)界面

步骤:选中表格>数据>从表格。

注意事项:要将年份数据形式转换成文本形式

 

第三步:定义每一条待爬取信息的url

步骤:添加列>自定义列>修改新列名

 

第四步:定义函数:Web.Page(Text.FromBinary(Web.Contents([URL]),65001)){0}[Data] 

 

第五步:数据筛选

这里不要勾选使用原始列名作为前缀。 

 

3、从新建查询的Web中获取

第一步:打开excel:数据>数据查询>从其他源>从web(W)

 

第二步:导航器中选择Table0,点击<加载>导出到excel,得到如下结果:

 总结:这个方法有个缺点不能爬取很多个城市,我们需要分析不同城市的URL,看是否能用:Web.Page爬取多个城市的数据,这里随机选择三个城市观察URL仅城市不同,于是试一下大量爬取:

北京:http://www.tianqihoubao.com/weather/top/beijing.html

重庆北碚:北碚历史天气查询_北碚过去一个月天气预报_天气后报

四川成都:成都历史天气查询_成都过去一个月天气预报_天气后报

步骤:数据>从表格>添加列(url)(步骤如上方NBA数据爬取所示)

 

这里要注意不需要将二进制文件转化为文本

得到结果:

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值