很久以前写过一个美团美食板块的小爬虫:

Python爬取美团美食板块商家数据

本文相关源代码+python学习资料美团采集源码易语言,关注,转发,私信小编"01"即可获取!

美团采集源码易语言_易语言30000源码  第1张



其实早就已经失效了,但还是经常有人来问我为什么代码用不了了。既然大家这么感兴趣,那我就重新写下吧。说不定哪天做旅游攻略的时候也可以用下呢。废话不多说,让我们愉快地开始吧~

开发工具

Python版本:3.6.4

相关模块:

requests模块;

argparse模块;

pyquery模块;

jieba模块;

pyecharts模块;

wordcloud模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

前期准备:

因为我想让这个小爬虫可以爬取美团上任意城市美食板块的数据,但是每个城市的URL是不一样的,其格式为:

https://{城市拼音缩写}.meituan.com/

不同的城市需要不同的URL来构造请求从而爬取我们所需要的数据,于是现在的问题就变成了:如何获取所有城市对应的城市拼音缩写呢美团采集源码易语言

其实很简单,点击网页上的切换城市按钮:

美团采集源码易语言_易语言30000源码  第2张


然后查看网页源代码:

美团采集源码易语言_易语言30000源码  第3张


于是我们很easy地就可以爬取所有城市对应的城市拼音缩写了,代码实现如下:

美团采集源码易语言_易语言30000源码  第4张


爬虫主程序:

现在随便切换到一个城市,以杭州为例。简单抓个包,可以发现美食商家的数据可以通过请求下图这个URL获得:

美团采集源码易语言_易语言30000源码  第5张


其构造方式为上图红框框出的baseURL加上下图所示的一堆参数:

美团采集源码易语言_易语言30000源码  第6张


其中变量为:

美团采集源码易语言_易语言30000源码  第7张


其他均为不变量,直接copy过来就行了。前面两个变量很明显是什么,就不多说了。变量uuid在网页源代码里就能找到:

美团采集源码易语言_易语言30000源码  第8张


至于_token,稍微麻烦一点。考虑到_token结尾出现了=,所以猜测是base64编码,但是解码后发现是一堆16进制ASCII码,所以考虑原数据是先进行二进制压缩然后base64编码的。反向操作一波,发现果然是这样的:

美团采集源码易语言_易语言30000源码  第9张


全局搜索找生成相关参数的源代码:

美团采集源码易语言_易语言30000源码  第10张


一顿分析之后就可以开始写_token生成的代码了,具体如下:

美团采集源码易语言_易语言30000源码  第11张


OK,知道了baseURL,获得了所有参数,我们就可以愉快地写主程序了:

美团采集源码易语言_易语言30000源码  第12张


其中解析返回的json数据的函数如下:

美团采集源码易语言_易语言30000源码  第13张


一些细节和tricks就不细说了。

All Done!完整源代码详见相关文件。

数据可视化

按惯例随手可视化一波,以抓取的杭州美食数据为例吧(这里只爬取了前50页),省的重新爬了。

先来搞个词云玩玩吧,用爬到的所有商家名/商家地址来搞个词云:

美团采集源码易语言_易语言30000源码  第14张


美团采集源码易语言_易语言30000源码  第15张


然后我们假设美食性价比的定义为(这个假设很可能是不合理,这里只是为了方便自己做下简单的数据分析随便假设了一下。):

性价比=评论数量 x 平均得分 / 平均价

于是我们可以得到"杭州性价比最高的十家店"为(只是个小例子,不供参考,如有雷同,不胜荣幸。):

美团采集源码易语言_易语言30000源码  第16张


OK,就这样吧,突然不想敲代码了(任性.jpg)。完整源代码详见相关文件。

使用方式

数据爬取:

在cmd窗口运行main.py文件即可,命令格式为:

python main.py -p 需要爬取的页数 -c 城市

效果截图如下:

美团采集源码易语言_易语言30000源码  第17张


速上美团数据采集软件(电脑版) | 软件产品-速上数据采集官网 (idm.org.cn)

描述:基于美团网商家数据的实时采集软件,可以采集指定城市,指定关键词的商家信息,包括名称、地址、电话号码、来源网址等。

微信号:565859400
添加上方技术, 在线咨询
复制微信号