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

腾讯位置大数据

网站

https://heat.qq.com/

网站功能介绍

腾讯位置大数据会将提供所有用户使用腾讯位置的数据信息,但没有用户信息(只有位置信息)。从这个网站我们可以获取所有使用腾讯位置服务的产品(微信、QQ、腾讯地图、京东和美团)的人再全球任何地方产生的定位次数,方便大家人口估测、商业分析和科学研究等。

数据分析

POST请求

打开开发者工具,找到POST请求。这里需要注意的是,网站会每五分钟POST一次getXingyunPoints请求,所以需要等五分钟才能看到这个post请求。

请求解析

等到post请求出现时,我们点开详细信息,每一次getXingyunPoints请求,都是四个。请求信息中,我们需要关注的是locs这个内容,它是由大量的数据组成,中间由英文“,”隔开;

每连续的三个数据为一组数据,这一组数据包含经度、纬度、人数,按照地理标准规范,经纬度小数点后面保留两位也就是说,表现形式为xxx.xx的格式,请求的数据如下所示:

3220,11895,2,3075,11535,2,......

解析为:

纬度32.20,经度118.95,人数为2

纬度30.75,经度115.35,人数为2

python代码

"""

@author: 菜C++鸡Java Jiangzl

@Description: 用来爬取腾讯位置大数据信息,再次声明,腾讯位置大数据从没人说是准确数据,也没说是完整数据,发paper的话建议三思

"""

import requests

import json

import pandas as pd

import time

def get_TecentData(count=4, rank=0, increNum=0): # 先默认为从rank从0开始(tecent一次post会post四次)

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

content = ''

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格式

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

locss = locs.split(",")

temp = [] # 搞一个临时容器

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

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

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

count = locss[2 + 3 * i]

#获得陕西的数据---获取每个地方的数据,改这里就行

#举个栗子--请求的元数据是整数,北纬10到20度之间

#就是1000

if(3142

temp.append([int(lat) / 100, int(lon) / 100, count]) # 在容器中存放数据:纬度,经度和定位次数

#数据整理

result = pd.DataFrame(temp)

result.dropna()

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

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

if __name__ == '__main__':

#如果你想每隔多长时间生成一个文件,就把下面的注释释放掉,就去掉那个#井号,0改成k

#sleep(number) number:间隔时间,每隔一分钟获取一次数据就是 sleep(60)

#while (1):

#for k in range(1000000):

for i in range(4):

get_TecentData(4, i, 0)

#time.sleep(60)

补充

在解析数据的时候注意运行的时间以及数据的筛选,如果不加筛选,每次请求为10M流量,按一秒一次,一小时一般的磁盘可能就满了。

有任何问题,都可私聊或者评论补充,也可积极探讨,互相学习。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学会有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常会涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机会。通过比赛的舞台,学生有机会展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
好的,您想了解如何用 Python 爬取历史天气数据,是吗? 首先,需要确定您想要爬取哪个地区的历史天气数据。一般来说,可以通过查询该地区的气象局或气象网站获取历史天气数据。 接着,可以使用 Python 中的 requests 库来发送 HTTP 请求,获取网页源代码。然后,可以使用 BeautifulSoup 库来解析网页源代码,提取出所需的天气数据。 以下是一个简单的示例代码,用于爬取中国天气网上北京市 2019 年 1 月份的历史天气数据: ``` python import requests from bs4 import BeautifulSoup url = 'http://www.weather.com.cn/weather/101010100.shtml#dt' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} r = requests.get(url, headers=headers) r.encoding = 'utf-8' soup = BeautifulSoup(r.text, 'html.parser') weather_list = soup.select('.t li') for weather in weather_list: date = weather.select('.time')[0].text weather_detail = weather.select('.temp')[0].text.strip() print(date, weather_detail) ``` 以上代码中,我们首先通过 requests 库发送了一个 GET 请求,获取了北京市天气网的网页源代码。然后,使用 BeautifulSoup 库解析网页源代码,提取出了 2019 年 1 月份的天气数据,并打印输出了日期和天气详情。 需要注意的是,不同的网站网页结构不同,需要根据具体情况修改代码。同时,需要注意网站的 robots.txt 文件,不要过度访问网站,以免被封 IP 或其他限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值