对于腾讯位置大数据平台,有一些商业接口可以调用

看起来还是挺爽的,但是现阶段只接受商业合作客户来调用,我们个人是获取不到的。

那就没办法了吗?当然不是,实际上腾讯位置大数据把调用接口就直接写在了前端,不过需要你花点心思去发现。

正文开始:

腾讯位置大数据平台网址如下https://heat.qq.com/

打开之后浏览器调到开发者模式开始抓包,这是最关键的,因为很多人打开之后根本看不到包在哪里,直接卡死在抓包这一刻。抓包之后得到https://xingyun.map.qq.com/api/getXingyunPoints这个链接,这个链接就存放了我们需要的定位数据。

如上图,这就是我们抓到的数据包,里面locs那一行中2528为北纬25.28度,11352则为东经113.52度,1则是在这一秒内该地点的定位次数。这一段数据量还是比较大的,如果你打开response来查看数据,浏览器能直接卡死,所以不得不说腾讯这个网页的前端做的实在太烂了。

我们再看腾讯位置大数据定位次数的更新频率,基本上隔一秒钟更新一次

那我们就来抓一下这个每一次返回的数据,我们注意到getXingYunPoints这个链接每次更新出来都是四个链接,然后点击链接header可以查看到RequestPayload有两个参数。不断点击四个链接查看参数我们发现参数中count一直为4,而rank则分别为0、1、2、3 。

以上就是抓包分析的过程,分析完下面就简单了。

# -*- coding: utf-8 -*-

'''

Created on Fri Jun 8 00:45:20 2018

@author: 武状元

'''

import requests

import json

import pandas as pd

import time

def get_TecentData(count=4,rank=0): #先默认为从rank从0开始

url='https://xingyun.map.qq.com/api/getXingyunPoints'

locs=''

paload={'count':count,'rank':rank}

response=requests.post(url,data=json.dumps(paload))

datas=response.text

dictdatas=json.loads(datas)#dumps是将dict转化成str格式,loads是将str转化成dict格式

time=dictdatas['time'] #有了dict格式就可以根据关键字提取数据了,先提取时间

print(time)

locs=dictdatas['locs'] #再提取locs(这个需要进一步分析提取出经纬度和定位次数)

locss=locs.split(',')

#newloc=[locss[i:i 3] for i in range(0,len(locss),3)]

temp=[] #搞一个容器

for i in range(int(len(locss)/3)):

lat = locss[0 3*i] #得到纬度

lon = locss[1 3*i] #得到经度

count = locss[2 3*i]

temp.append([time,int(lat)/100,int(lon)/100,count]) #容器追加四个字段的数据:时间,纬度,经度和定位次数

result=pd.DataFrame(temp) #用到神器pandas,真好用

result.dropna() #去掉脏数据,相当于数据过滤了

result.columns = ['time', 'lat', 'lon','count']

result.to_csv('TecentData.txt',mode='a',index = False) #model='a',a的意思就是append,可以把得到的数据一直往TecentData.txt中追加

if __name__ =='__main__':

while(1): #一直循环吧,相信我,不到一小时你电脑硬盘就要炸,大概速度是一分钟一百兆数据就可以爬下来

for i in range(4):

get_TecentData(4,i) #主要是循环count,来获取四个链接里的数据

好了,这样就可以得到我们需要的数据了,以上是得到全球数据的办法。通过上述方法我获取了全球10天(100G左右)的腾讯位置大数据,还有2019年春节期间全国20天(80G左右)的腾讯位置大数据,这些数据可以用来研究人口分布特征和人口流动趋势等课题。但是如此大的数据怎么处理呢?一个txt文件100G,处理方法下一篇文章有简单介绍。

得到全球数据之后再进行数据清洗(比较繁琐)得到南京的数据,后面再导进ArcMap中就可以了。

之后绘制渔网并自行建模,得到南京市1km*1km人口估算格网(详细过程以后会有专门文章讲解):

以上就是得到的数据,但是如果你真的就按照这个方法来很快你就会发现你电脑硬盘受不了了(原先我就是这么搞的,得到全球10天定位数据100多g),那怎样减少数据量呢?我发现了两个方法,一个从空间角度,一个从时间角度。

方法一:直接在抓数据的时候裁剪出 你需要的范围,比如南京的,纬度范围就是北纬31.15到北纬32.70,经度范围是东经118.23到东经119.30,于是乎一个if语句就解决了。

if(3115

temp.append([time,int(lat)/100,int(lon)/100,count])

这样就得到了下图(南京包含在里面),这里的数据没有像上图那么排列完整密集是因为这只是一次定位数据的一个count而已,数据量很小,只是做演示用的。

方法二:从时间角度,这个就更简单了,爬一段时间就让你的程序停一段时间, time.sleep(120)就是睡个120秒再说,这样的话又可以稀释数据了。

if __name__ =='__main__':

while(1):

for i in range(4):

get_TecentData(4,i)

time.sleep(120)

总结:

需要注意的是该平台只能爬到当前数据,历史数据是爬不到的,所以如果有论文研究需要的童鞋还是看准时间赶紧爬吧,因为不知道这个接口啥时候就会被封了。(以前的接口不是https://xingyun.map.qq.com/api/getXingyunPoints,而是getpointbytime好像是,最近才改的,以前是每个五分钟可以爬一次数据,现在变成了可以每隔几秒钟爬一次了)

PS:

这是我的第一篇博客,欢迎大家关注啦。

也欢迎大家交流讨论 QQ:3271088075(验证消息CSDN)

互联网大数据挖掘QQ群:575325764(验证消息CSND)

微信公众号:GIS大师兄  【这个公众号是我经常投稿的地方,相关源代码和数据可以公众号获取,欢迎关注】

微信公众号:中原百科  【这是我的个人爱好创建,主要分享我对一些时事政治和社会热点的看法,欢迎关注】

python爬取网站大数据_基于腾讯位置大数据平台的全球移动定位数据获取(Python爬取)...相关推荐

  1. python大数据平台_基于腾讯位置大数据平台的全球移动定位数据Python爬取与清洗...

    前不久投稿了一篇论文是以腾讯位置大数据为基础进行人口空间化研究的,但是还未见刊,见刊后会给大家分享下具体的研究方法. 首先打开腾讯位置大数据星云图链接:https://xingyun.map.qq.c ...

  2. 腾讯人口密度热力图_从腾讯位置大数据,看中国的超级城市

    世界那么大,谢谢你来看我!!关注我你就是个网络.电脑.手机小达人 地图作为现代人经常使用的工具.大数据的出现赋予了地图新的内涵,传统的地图不能满足日常的需求,热力图营运而生.谷歌腾讯阿里百度NASA滴 ...

  3. 腾讯人口密度热力图_从腾讯位置大数据看中国的超级城市,你所处位置是不是很亮?...

    欢迎点击关注,每天分享好看的文章! 地图作为现代人经常使用的工具.大数据的出现赋予了地图新的内涵,传统的地图不能满足日常的需求,热力图营运而生.谷歌腾讯阿里百度NASA滴滴高德都推出了相应的产品供大家 ...

  4. 提取数据_基于众包的可视化图表数据提取

    Crowdsourcing-based Data Extraction from Visualization Charts 作者 Chengliang Chai† Guoliang Li† Ju Fa ...

  5. supersocke接收不到数据_基于SuperSocket的北斗终端数据接收服务的设计与实现

    基于 SuperSocket 的北斗终端数据接收服务的设计与实现 刘 朴 , 莫家勤 * [摘 要] 北斗是我国自主研发的卫星导航定位系统 , 已经被广泛使用于各个领域 , 城市交通管理的核心是车辆监 ...

  6. python爬取地理数据_python爬取所有人位置信息——腾讯位置大数据

    腾讯位置大数据 网站 https://heat.qq.com/ 网站功能介绍 腾讯位置大数据会将提供所有用户使用腾讯位置的数据信息,但没有用户信息(只有位置信息).从这个网站我们可以获取所有使用腾讯位 ...

  7. Python爬取所有人位置信息——腾讯位置大数据!

    腾讯位置大数据 网站 https://heat.qq.com/ 网站功能介绍     腾讯位置大数据会将提供所有用户使用腾讯位置的数据信息,但没有用户信息(只有位置信息).从这个网站我们可以获取所有使 ...

  8. 【Python】基于Python获取腾讯位置大数据并进行数据清洗与可视化

    目录 1 引言 2 数据爬取 2.1 代码 2.2 结果 3 数据清洗 3.1 代码 3.2 结果 4 可视化展示 5 后记 1 引言 由于前面几篇关于百度迁徙获取数据的文章反响不错,有好多dalao ...

  9. Python+Django+Mysql简单在线课程推荐系统 基于用户、项目、内容的协同过滤推荐算法 SimpleOnlineCourseCFRSPyth python实现协同过滤推荐算法实现源代码下载

    Python+Django+Mysql简单在线课程推荐系统 基于用户.项目.内容的协同过滤推荐算法 SimpleOnlineCourseCFRSPyth python实现协同过滤推荐算法实现源代码下载 ...

最新文章

  1. 八城联动 丨 神策 2020 数据驱动用户大会「长沙站」重磅来袭!
  2. 当我们在谈论cpu指令乱序的时候,究竟在谈论什么?
  3. SAP云平台上的Low Code Development(低代码开发)解决方案
  4. linux桌面环境丢失,一个pycharm引起ubuntu桌面丢失的惨案
  5. atitit.表单验证 的dsl 本质跟 easyui ligerui比较
  6. 即将到来的 ECMAScript 2022 新特性
  7. redis分布式锁java代码_基于redis实现分布式锁
  8. ftp上传和下载命令
  9. matlab实现一/多元线性回归
  10. sql server 主键_SQL Server中人口过多的主键和CE模型的变化
  11. 使用Kotlin的Android AsyncTask
  12. html path 图标,Clippy – 轻松绘制 CSS clip-path 裁剪路径工具
  13. 国内专利下载网站推荐
  14. 马尔萨斯模型的分析和应用
  15. Steam教育对国内大学生的影响力
  16. fluent二维叶型仿真_FLUENT案例#389(#378)正弦(三角)波纹翅片式换热器仿真
  17. UDP网络编程和URL编程
  18. Haskell构造binary Tree|99题(55)
  19. java资源吧_哔哩哔哩有好的Java学习资源吗?
  20. [附源码]Java计算机毕业设计SSM白酒营销管理

热门文章

  1. Synchonized原理
  2. 如何对智能对话机器人的智能化水平分类
  3. 谷歌黑客搜索看这些就够了!
  4. EXCEL中对1个单元格中多个数字求和
  5. 【Luogu1879】玉米田
  6. Unity:计算两个物体(没有父子关系)的相对坐标
  7. 给你一台大疆无人机,你能用来做点啥?(二)-----——倾斜摄影建模
  8. 满足功能安全要求的代码测试方案:Parasoft C++test
  9. Elasticsearch Java API之计数(HighLevelClient)
  10. 写项目时怎样将后台管理使用的富文本编辑器保存的内容转为HTML格式