高德地图是我们经常用的地图软件,今天我们以海底捞为例子,取全国的海底捞搜索结果为自己用!这里的方法只用于个人采集公开数据,请不要用于商业或违法用途!
因为整个C站还没有分享这方面技术的,所以我写一篇给大家节日助助兴!喜欢的大哥大姐们给我点点关注点点赞~
项目公开地址:
编程软件:Pycharm
Python版本:3.7.6
浏览器:双核浏览器
依赖库:urllib,requests,json,pymysql
分析工具:Postman
首先进入高德地图,搜索范围地选全国,然后F12检查,进入网络(network)界面,在搜索框输入‘海底捞’,先不点搜索按钮,清空网络界面的数据,再点击,此时的界面一般是这样的,
city表的创建语句
直接用postman生成python代码,取得这个数据保存到文件里,或者直接复制postman下面的数据保存到文件里即可
用json读取这个文件,取得第一层城市信息数据,存入数据库中
剩下的可能只要把pagesize改为总数即可获取全部
现在的半纯净地址是
https://www.amap.com/service/poiInfo?query_type=TQUERY&qii=true&cluster_state=5&need_utd=false&div=PC1000&addr_poi_merge=true&is_classify=true&zoom=4&city=320100&keywords=%E6%B5%B7%E5%BA%95%E6%8D%9E&pagesize=20&pagenum=1
提取里面的pagesize和city作为我们要调整的循环变量,在数据库中读出
经过测试,一次性读取的最大值是30,给他再打的pagesize都不会改变一个页面最多30条,所以要分页多次读取,为了伪装,我们还是选用默认的20个作为参数,调整分页页面的值
综合一下,我们根据文件里的名称提取以下数据
districtcode-地址的邮编,address-地址,provincename-省份,districtname-区名,cityname-城市名称,name-店名,id-元素的id,latitude-纬度,longitude-经度,src_star-评分,review_total-浏览量,tel-电话,business_area-商业区,opentime-开闭时间,averagecost-人均消费,pcdr-精确到路的地址,tag_display-菜品
同时在数据库表中保存城市的adcode,作为外键
文章到这里还没结束,我再拓展拓展可视化的操作,大家先给我点点赞,收藏收藏,鼓励鼓励
这里选用windows的powerbi做分析,版本就最新版,刚下载的还热乎着。如果你是windows7及以下版本,那你下载的时候看最后支持的版本,windows7在今年年初就不支持了,其他的更早。
数据表的读取直接从数据库连接即可,选更多,找到mysql,这里可能需要先安装一个mysql-connector-net-8.0.20.msi,如果你找不到,请留言,我给你发下载地址。
这里用到的功能并不复杂,低版本可能只是操作的位置不一样,其他都一样。
建立一个度量值
店铺数量 = COUNT(‘db2 result’[name])
在市级层面可以看得到的结果和最初的搜索结果数的比率
建一个表格,第一个name取的是city表的