美团外卖商圈排名抓取

近期上岗了一家餐饮连锁店,出任数据投资分析师,关键工作任务是承担数据数据可视化的呈现,企业数据单位一开始建立,和我一起上岗的还有一个专业承担写爬虫的,负责抓取美团外卖上边的数据,因为多种缘故,刚上岗不久就辞职了,因此他以前写好的爬虫我承担维护保养,看到经营的朋友每日手工制作抓取数据太费力,因此我逐渐科学研究爬虫。

我极少写爬虫,只了解一些爬虫的基本原理,实践活动新项目非常少,此次新项目的总体目标是抓取美团的商业圈排名

最先用Chrome打开网站版的美团外卖商家服务平台,为什么是Chrome,由于官方网强烈推荐

因此因为这一新项目,我专门去安装了Chrome浏览器,破笔记本电脑更卡住

账户密码登陆后台管理

寻找抓取的总体目标

这一1便是我的愿望,规范实际操作,按住F12,随后刷新网页,判断力跟我说,美团外卖那样规模的网站,不容易把数据放到html代码里边,立即找Ajax请求

普通高中残片英文跟我说排名的英文翻译是rank,立即找rank开始的请求,

懂一门外国语便是那么快速!

逐渐写爬虫

导进有关的库

import requests import pandas as pd

搭建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文件格式

最后结论

全过程非常艰辛,最终的結果是完美无缺的

汇总:尽管我的工作岗位是数据投资分析师,可是要是没有数据得话,那还剖析什么?因此我认为懂一些爬虫也是必需的,达到相近的小要求,也是有浓浓的满足感。

扫码免费用

源码支持二开

申请免费使用

在线咨询