Python爬取所有人位置信息,制作任意区域人流量显示图

Stella981
• 阅读 684

击上方“ Python爬虫与数据挖掘 ”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

衣裳已施行看尽,针线犹存未忍开。

最近偶然看到了腾讯的大数据星云图,非常漂亮,如下图:

Python爬取所有人位置信息,制作任意区域人流量显示图

这些数据代表使用腾讯定位服务的用户实际地理位置,例如微信、QQ、腾讯地图等,所以使用量还是表达的,此图可以间接显示人流量情况

该网站还可以查看区域热力图:

Python爬取所有人位置信息,制作任意区域人流量显示图

但是只有个别区域

于是我萌生一个想法,用python任意区域人员流量图

经过不懈努力,没想到还真给实现了,下面带大家一起学习一下这一过程:

一、首先是数据获取数据获取

腾讯其实开放了数据接口,但是只能商用:

Python爬取所有人位置信息,制作任意区域人流量显示图

但是不用怕,我们还有其他办法获取

进入主页:https://xingyun.map.qq.com/

在主页抓包,获得数据接口:

Python爬取所有人位置信息,制作任意区域人流量显示图

经过分析发现,每次请求都会发送4个post请求,每次请求的参数如下:

Python爬取所有人位置信息,制作任意区域人流量显示图

Python爬取所有人位置信息,制作任意区域人流量显示图

Python爬取所有人位置信息,制作任意区域人流量显示图

Python爬取所有人位置信息,制作任意区域人流量显示图

rank值从1变化到4,咱也不知道是啥意思,索性就都爬了,大不了再去重

返回数据如下:

Python爬取所有人位置信息,制作任意区域人流量显示图

主要是locs字段,以第一组数据为例,3295代表纬度信息,11590代表经度信息,分别除100既是经纬度原始值,6代表该位置人数。

下面我们开始写写代码获取数据:

import requests import json header={     'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0'} url = 'https://xingyun.map.qq.com/api/getXingyunPoints' for i in range(1,5):     payload = {'count': i, 'rank': 0}     response = requests.post(url, data=json.dumps(payload))     datas=json.loads(response.text)['locs']     datas=datas.split(',')     datas=[int(i) for i in datas[:-1]]     all_data=[]     a=[]     for n,data in enumerate(datas):         a.append(data)         all_data.append(a)         if (n+1)%3==0:             a=[] all_data=[[i[0]/100,i[1]/100,i[2]] for i in all_data]

将数据转换为DataFrame格式:

import pandas as pd lat=[float(i[0]) for i in all_data] long=[i[1] for i in all_data] weight=[i[2] for i in all_data] dataframe=pd.DataFrame({'纬度':lat,'经度':long,'人数':weight})

对数据进行去重:

dataframe=dataframe.drop_duplicates(keep='first')

有了这些坐标信息,我们可以估算一个区域人流量

pandas小知识:

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

subset用来指定特定的列,默认所有列;
keep="first"表示删除重复项并保留第一次出现的项,此外,keep值还可以为'last':表示保留最后一次出现的值;'false':表示所有相同的数据都删除

选定区域:

data1=dataframe[(dataframe.纬度.between(39.26,41.03)) & (dataframe.经度.between(115.25,117.30))]

二、用folium画热力图:

import folium from folium.plugins import HeatMap map_data = data1[['纬度', '经度', '人数']].values.tolist() hmap = folium.Map(     location=[data1['纬度'].mean(), data1['经度'].mean()],  #地图中心坐标     control_scale=True,      zoom_start=13    #地图显示级别 ) hmap.add_child(HeatMap(map_data, radius=5, gradient={.1: 'blue',.3: 'lime', .5: 'yellow',.7:'red'}))

Python爬取所有人位置信息,制作任意区域人流量显示图

真方!

**********---**--****-------------- End **********---**--****--------------

往期精彩文章推荐:

Python爬取所有人位置信息,制作任意区域人流量显示图

欢迎大家点赞,留言,转发,转载,****感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~

本文分享自微信公众号 - Python爬虫与数据挖掘(crawler_python)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Irene181 Irene181
3年前
盘点最重要的7个Python库
点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书导读:对于那些对Python数据生态系统不太熟悉的人士,我将简要地介绍一部分重要的库。作者:韦斯·麦金尼(WesMcKinney)译者:徐敬来源:大数据DT(ID:hzdashuju)01NumPyhttp://numpy
Stella981 Stella981
3年前
Python自带爬虫库urllib使用大全
击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤门前冷落鞍马稀,老大嫁作商人妇。这篇文章主要来讲解下Python自带的爬虫库urllib常见用法,主要围绕urllib定义、urllib的常用模块和urlliblxml爬虫案例三个部分进行展开。
Stella981 Stella981
3年前
Python分析《哈哈哈哈哈》47687条弹幕,看看大家都在说些啥!
点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤归山深浅去,须尽丘壑美。!(https://oscimg.oschina.net/oscnet/5a50ee167263416384471dc0bf419cee.png)图片来源:豆瓣
Stella981 Stella981
3年前
Python web开发从入门到放弃
点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤无为之用方为大用。!(https://oscimg.oschina.net/oscnet/f64430c27950bcccce040bb032ea65e73a5.jpg)越来越多的同学知道我在做
可莉 可莉
3年前
10行Python代码自动清理电脑内重复文件,解放双手!
点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤世间行乐亦如此,古来万事东流水。!(https://oscimg.oschina.net/oscnet/da5385ecbd59492aa127c14a1a5b807c.jpg)(h
Stella981 Stella981
3年前
30行Python代码来绘制一个微信图标
点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤疾风知劲草,板荡识诚臣。!(https://oscimg.oschina.net/oscnet/a6229315ce691709916c9d7a27637d436ce.jpg)有一句至理
Stella981 Stella981
3年前
Python3 网络爬虫:下载小说的正确姿势
点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤少年心事当拂云。!(https://oscimg.oschina.net/oscnet/09902b71501b9e8c3cb656b5dfbbb0552e0.jpg)1
Wesley13 Wesley13
3年前
5 分钟掌握 Python 中的 Hook 钩子函数
击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤此曲有意无人传,愿随春风寄燕然。!(https://oscimg.oschina.net/oscnet/eb40675fe18343b98502990255057c76.jpg)1