近期新员工入职了一家快餐连锁店,出任数据投资分析师,关键工作任务是承担数据数据可视化的呈现,企业数据单位一开始建立,和我一起新员工入职的还有一个专业承担写爬虫的,负责抓取美团外卖上边的数据,因为多种缘故,刚新员工入职没多久就辞职了,因此他以前写好的爬虫我承担维护保养,看到经营的朋友每日手工制作抓取数据太费力,因此我逐渐科学研究爬虫。
我极少写爬虫,只了解一些爬虫的基本原理,实践活动新项目非常少,此次新项目的总体目标是抓取美团的商业圈排名
最先用Chrome打开网站版的美团外卖商家服务平台,为什么是Chrome,由于官方网强烈推荐
因此因为这一新项目,我专门去安装了Chrome浏览器,破笔记本电脑更卡住
账户密码登陆后台管理
寻找抓取的总体目标
这一1便是我的愿望,规范实际操作,按住F12,随后刷新网页,判断力跟我说,美团外卖那样规模的网站,不容易把数据放到html代码里边,立即找Ajax请求
普通高中残片英文跟我说排名的英文翻译是rank,立即找rank开始的请求,
懂一门外国语便是那么快速!
逐渐写爬虫
导进有关的库
搭建headers掩藏爬虫
寻找请求的url
url较为短,简易分析了一下这一url,无论我换哪个店铺,url全是一致的,这里我便困惑了,url都不会改变,那店铺的排名是按照哪些来更改的呢?
科学研究来研究去,发觉鸡贼的美团外卖把区别店铺的ID藏在了cookies里边
根据转换cookies里边的ID得到相匹配店铺的数据
因此目前的关键流程变成了二步:
1.抓取全部店铺的ID和名称
2.根据ID得到店铺的排名数据
店铺ID一样是Ajax请求,回到的数据或是json格式
搭建请求,json的["data"]包括全部店铺数据,可是要从1逐渐选择,不可以从0逐渐,
我选择了在其中一家店铺的数据来科学研究,包括了店铺名字,ID,第三个businessDesc也就是我必须的,仅有二种值,一种是“营业中”,此外一种是“暂停营业中”,停业的店铺沒有商排,后边根据这一筛除没用的ID
来看这一实际操作是获得成功的
随后根据更换cookies里边的ID去找相对应店铺数据的
cookies后边跟了一个for ** t字符串数组恢复出厂设置,白框里边的if语句很重要,由于商业圈排名是昨日的,有的店铺今日开张,昨日的数据是空的,因此if判断能否为空,不以空就正常的抓取,为空就pass掉,别问我是怎么知道的,全是我踩过的坑
限定了速率,抓取一个店铺以后歇息1s
最终的結果存为词典,边上根据pandas导出来数据
来看很成功,日期写的是昨日的日期,
結果导出来为excel文件格式
最后結果
全过程非常艰辛,最终的結果是完美无缺的
汇总:尽管我的工作岗位是数据投资分析师,可是要是没有数据得话,那还剖析什么?因此我认为懂一些爬虫也是必需的,达到相近的小要求,也是有浓浓的满足感。
扫码咨询与免费使用
扫码免费用
申请免费使用
在线咨询