楼主: Data-零一
3388 9

[CDA数据分析师学习之路] [21天小白学成大师]NO.3 学会用EXCEL自带的3个函数抓取30万条网页数据 [推广有奖]

  • 0关注
  • 38粉丝

本科生

60%

还不是VIP/贵宾

-

威望
0
论坛币
1090 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
702 点
帖子
47
精华
0
在线时间
69 小时
注册时间
2014-4-8
最后登录
2019-1-3

楼主
Data-零一 发表于 2017-7-3 17:14:20 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

本系列文章作者是我二徒弟,一个80后,学历不高,同时运营着3家1688店铺。全套文章21篇,虽然标题是21天小白学成大师,但还真不是一天一更,平时比较忙,更新就要耐心等候了。


本人是一个小白,学历只有高中。最近才接触数据分析,因为才刚接触,工具上Excel是属于入门门槛最低的,所以我选择了Excel作为数据分析殿堂的敲门砖。

师父教了一个大招,附上一句教诲:自律而后自驱,自驱而后自信,自信方能沉稳,下面进入主题。


相信大家在做Excel数据表的时候,都碰到过这样的问题:每当数据源是来自网页的时候,我们经常需要重复性的复制粘贴至表格,才能进行后续的分析,不仅耽误时间而且容易出错。

在零一老师的指导下,我在Excel道路上又跨出了一步,学会了利用Excel自带的Power Query以及简单的3个函数根据自身的需求得到了去哪儿网30多万条旅游数据。

好处还不仅仅于此,表格制作完成后可以随意修改出发地,单击刷新,表格将会自动抓取新的数十万条数据,完全自带共享功能,绝对称得上是装X利器。

以下是具体的步骤(友情提示,下面的操作步骤很详细,所以看起来有点繁琐,但只要你动手做,很简单):


打开去哪儿官网


1.png

→在键盘上按下F12键→手机端标识

2.png


→在键盘上按下F5键→度假

3.png


→清除掉所有抓到的包,这样便于我们接下来的观察

4.png


→点击搜索框

5.png


→点击加载热门城市

6.png


→在开发编辑器中选择Network选项卡

7.png


→选择JS只显示JS格式的包

8.png


→找到数据包arriveRecommend

9.png


→点击数据包,然后点击Preview,可以观察JS结构的数据

10.png


→展开data这个键

11.png


→展开subModules

12.png

→展开


13.png

→items

14.png


→0→1→2→3→4→5,这样我们就找到了需要的所有分类,接下来我们返回去找到链接结合函数就能抓取所有我们能看到的分类。

15.png


→Headers

16.png


→选中的部分为URL编码,因此我们需要先解码,一探究竟。


17.png

18.png

→在百度搜索框键入“解码”→回车


19.png

→站长工具

20.png


→URL编码/解码

21.png


→将编码粘贴进去→UrlDecode


22.png

→解码之后我们发现编码就是出发地→新建一张Excel表格→键入出发地→键入温州→从表格

23.png

→将表包含标题勾上→确定


24.png

→添加列


25.png

→自定义列
26.png


→将之前含有编码的网页链接复制进来https://m.dujia.qunar.com/golfz/sight/arriveRecommend?dep=%E6%B8%A9%E5%B7%9E→将编码替换成函数Uri.EscapeDataString()

导盲犬:Uri.EscapeDataString()函数是转码用的,默认是ut8。

注:函数需区分大小写并且括号是在英文状态下键入的,插入函数的时候要在函数前面加上连接符号“&”。


→双击出发地


27.png

→插入Web.Contents函数→插入Json.Document函数→确定

导盲犬:函数Web.Contents()是将从web URL下载的内容返回为二进制值,函数Json.Document()是返回一个JSON文件的内容,直接解析json的格式化数据。

注:插入的函数Web.Contents()需要在括号里面加“”号,表示引用文本。

28.png

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


第三天效果图.png (193.46 KB)

第三天效果图.png

12.png (112.72 KB)

12.png

13.png (126.71 KB)

13.png

14.png (144.31 KB)

14.png

29.png (43.84 KB)

29.png

24.png (81.07 KB)

24.png

23.png (64.1 KB)

23.png

22.png (128.72 KB)

22.png

21.png (133.53 KB)

21.png

沙发
Data-零一 发表于 2017-7-3 17:14:38

藤椅
Data-零一 发表于 2017-7-3 17:34:06

→继续

29.png


→倒三角→公共→保存


30.png

→扩展(扩展的依据是之前我们在浏览器代码上找到的内容所处的位置) 31.png


→仅勾选data→确定
32.png


→扩展

33.png


→扩展

34.png


→仅勾选subModules→确定

35.png

→扩展


36.png

→扩展

37.png


→仅勾选items→确定

38.png


→扩展

39.png


→仅勾选query→确定

41.png


→倒三角


42.png

→将null前面的勾去掉→确定,这样我们就得到了所有从温州出发可以到达的目的地。

43.png

→接着我们返回浏览器单击清除

44.png


→三亚

45.png


→XHR

46.png


→listApi.json?modules=list

47.png


→Preview

48.png


→data

49.png


→list

50.png


→results

51.png


→3

52.png


→根据自己的需求找到数据,我找了productScore(评分),soldCount(销量),title(标题)totalPrice(价格)。

53.png

→这里我还多找了一个encodeId(编号),是为之后抓取评价用的。

54.png

→Headers


55.png

→将所有的编码复制


56.png

→粘贴至转码→UrlDecode解码

57.png


→解码后,就可以发现其中的变量只有出发地(温州)和目的地(三亚),接着我们回到查询编辑器 58.png





40.png (75.61 KB)

40.png

板凳
Data-零一 发表于 2017-7-3 17:35:10

→添加自定义列

59.png


→将3段变量编码全部修改为Uri.EscapeDataString()函数,并且依次选中括号双击右侧的出发地,query,query,注意这里需要键入的连接符号。
→插入Web.Contents()函数,注意这里所有的文本需要键入的引号,文本与变量之间用“&”号连接。

60.png

→插入Json.Document()函数,由于函数太长截不下全图,我就粘贴在这里。“https://touch.dujia.qunar.com/listApi.json”是接口,“?”后面的是参数。Json.Document(Web.Contents("https://touch.dujia.qunar.com/listApi.json?modules=list,bookingInfo&dep="&Uri.EscapeDataString([出发地])&"&query="&Uri.EscapeDataString([query])&"&mtype=all&mobFunction=%E8%87%AA%E7%94%B1%E8%A1%8C,%E5%87%BA%E5%8F%91%E5%9C%B0%E5%8F%82%E5%9B%A2,%E7%9B%AE%E7%9A%84%E5%9C%B0%E5%8F%82%E5%9B%A2,&it=dujia_hy_destination&bd_source=wdcx2&page=home&mobfuncname=%E8%87%AA%E7%94%B1%E8%A1%8C,%E5%87%BA%E5%8F%91%E5%9C%B0%E5%8F%82%E5%9B%A2,%E7%9B%AE%E7%9A%84%E5%9C%B0%E5%8F%82%E5%9B%A2&date=&configDepNew=&needNoResult=true&originalquery="&Uri.EscapeDataString([query])&"&limit=0,28&includeAD=true&qsact=search"))

→扩展

61.png

→仅勾选data→确定

62.png

→仅勾选list→确定

63.png


→扩展

64.png


→仅选中results→确定

65.png


→扩展

66.png


→扩展

67.png


→将“选择所有列”前面的勾去掉

68.png


→勾选encodeId,productScore,soldCount,title,totalPrice这五个选项→确定

69.png


到这里,我们就只差一个评价没有抓取了,返回浏览器。


→点击任意一款有销量的旅游产品进入


72.png

→清除


73.png

→查看评价


74.png

→queryPComments

75.png


→data

76.png


→mainCommentList


77.png

→评价在content下

78.png


→Headers

79.png


→找到链接,发现其中就只有ID是变量,接着我们返回查询编辑器

80.png

→添加自定义列


→将链接复制进去,因为没有编码所以就不要转码函数,只需将原先的数字去掉,双击键入encodeld,注意需要添加连接符号。


→插入Web.Contents()函数,注意添加的引号。


→插入Json.Document()函数→确定。注:这里把Size后面的数字改为50,是每次加载50条评价的意思。

81.png


→扩展


82.png

→仅勾选data→确定


83.png

→扩展

84.png


→加载更多

85.png


→仅勾选mainCommentList→确定


86.png

89.png (158.85 KB)

89.png

88.png (121.51 KB)

88.png

87.png (130.88 KB)

87.png

82.png (80.06 KB)

82.png

71.png (89.76 KB)

71.png

70.png (91.48 KB)

70.png

报纸
Data-零一 发表于 2017-7-3 17:50:10

→扩展

87.png


→扩展

88.png


→仅选中content→确定

89.png


→soldCount右侧的倒三角

90.png


→将null前面的勾去除→确定

91.png

→关闭并上载

92.png


→得到10万+数据


共享给好友时,结合实际情况修改出发地。步骤:将温州改为上海


→数据→显示查询

97.png



作者联系方式(微信):anzhi1111(暗之)




快速问答——


问:零一工具箱的下载地址在哪?

答:https://pan.baidu.com/s/1c1HlyLi

问:零一工具箱是否收费?

答:零一工具箱是一款提供给电商运营轻量级的免费工具。


问:零一会是一个什么样的机构?

答:零一会是一个专业数据人才培养基地。


问:零一会有哪些业务?

答:培训孵化——通过系统的培训,一对一小班指导培养数据化运营人才,毕业后就业仍然会享受信息和知识的互通。


人才认证与输送——学习期满颁发权威机构专业证书,为企业输送数据分析师和数据运营人才。


电商运营——为企业提供代运营服务,提高店铺业绩。





101.png (168.05 KB)

101.png

100.png (151 KB)

100.png

99.png (134.54 KB)

99.png

98.png (81.04 KB)

98.png

96.png (94.08 KB)

96.png

95.png (70.15 KB)

95.png

94.png (57.72 KB)

94.png

93.png (70.18 KB)

93.png

地板
西门高 发表于 2017-7-3 19:38:34
谢谢分享

7
h2h2 发表于 2017-7-4 02:27:40
大大,图挂了!

8
Data-零一 发表于 2017-7-4 16:39:19
h2h2 发表于 2017-7-4 02:27
大大,图挂了!
关注公众号:start_data,这上面有答案

9
h2h2 发表于 2017-7-5 10:58:44
Data-零一 发表于 2017-7-4 16:39
关注公众号:start_data,这上面有答案
谢谢,好的

10
Data-零一 发表于 2017-7-8 16:28:06
图都好了。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 22:37