百度迁徙 迁入人口和迁徙规模爬虫

article/2025/9/18 1:48:33

最近做COVID-19相关的课程项目,需要用到省级间人口迁移的数据。笔者参考改进了https://blog.csdn.net/qq_44315987/article/details/104118498 的城市间流动的代码,从百度迁徙爬取了数据,并将数据保存在同一张表内。

迁入人口

# coding:utf-8
import urllib.request
import pandas as pddef get_code_city():code_str = """北京|110000,天津|120000,广西壮族自治区|450000,内蒙古自治区|150000,宁夏回族自治区|640000,新疆维吾尔自治区|650000,西藏自治区|540000,上海|310000,浙江|330000,重庆|500000,安徽|340000,福建|350000,甘肃|620000,广东|440000,贵州|520000,海南|460000,河北|130000,黑龙江|230000,河南|410000,湖北|420000,湖南|430000,江苏|320000,江西|360000,吉林|220000,辽宁|210000,青海|630000,山东|370000,山西|140000,陕西|610000,四川|510000,云南|530000"""code_dict = {}for mapping in code_str.split(","):name, number = mapping.split("|")code_dict[name] = numberreturn code_dictdef conserve(data, time, work):province = []value = []for item in data['list']:province.append(item['province_name'])value.append(item['value'])res = {'省份': province, '比例': value}res = pd.DataFrame(res)res.to_excel(excel_writer=work, sheet_name=time)data_type = "move_in" 
f = pd.DataFrame()
f.to_excel('{}.xlsx'.format(data_type))  # 保存的文件名
work = pd.ExcelWriter('{}.xlsx'.format(data_type))
time_slots = list(range(20200115, 20200132)) + list(range(20200201, 20200230)) + list(range(20200301, 20200316))# 用到的时间片段provinces = ["上海市", "北京市", "重庆市", "天津市", "内蒙古自治区", "广西壮族自治区", "西藏自治区", "新疆维吾尔自治区", "宁夏回族自治区", "河北省", "山西省", "辽宁省", "吉林省", "黑龙江省", "江苏省",  "浙江省", "安徽省", "福建省",  "江西省", "山东省", "河南省", "湖北省", "湖南省", "广东省", "海南省", "四川省", "贵州省", "云南省", "陕西省", "甘肃省", "青海省"]code = get_code_city()  # 获取城市和编码。这里去除了港澳台
for name, num in code.items():province_ratio_dict = {}province_ratio_dict['省份'] = provincesfor t in time_slots:print(name, t)url = 'http://huiyan.baidu.com/migration/provincerank.jsonp?' \'dt=province&id={}&type=move_in&date={}'.format(str(num), str(t))  # 设置url,这里比较重要。如果选择迁出,改为type=move_outhead = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ''AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/74.0.3729.169 Safari/537.36'}req = urllib.request.Request(url, headers=head)response = urllib.request.urlopen(url)html = response.read().decode('unicode_escape')if html.startswith("cb"):html = html[3:-1]data = eval(html)["data"]ratios = []province_ratio_temp = {item['province_name']: item['value'] for item in data['list']}for province in provinces:if province not in province_ratio_temp:    # 这一段是为了确保每个日期下保存的省市数目都一致,因而可以都保存在一张表格内ratios.append(0)else:ratios.append(province_ratio_temp[province])province_ratio_dict[str(t)] = ratiosres = pd.DataFrame(province_ratio_dict)res.to_excel(excel_writer=work, sheet_name=name)work.save()

运行中显示当前爬取的省份和日期
在这里插入图片描述

迁徙规模爬虫

# coding:utf-8
import urllib.request
import pandas as pddef get_code_city():code_str = """北京|110000,天津|120000,广西壮族自治区|450000,内蒙古自治区|150000,宁夏回族自治区|640000,新疆维吾尔自治区|650000,西藏自治区|540000,上海|310000,浙江|330000,重庆|500000,安徽|340000,福建|350000,甘肃|620000,广东|440000,贵州|520000,海南|460000,河北|130000,黑龙江|230000,河南|410000,湖北|420000,湖南|430000,江苏|320000,江西|360000,吉林|220000,辽宁|210000,青海|630000,山东|370000,山西|140000,陕西|610000,四川|510000,云南|530000"""code_dict = {}for mapping in code_str.split(","):name, number = mapping.split("|")code_dict[name] = numberreturn code_dictdef conserve(data, time, work):province = []value = []for item in data['list']:province.append(item['province_name'])value.append(item['value'])res = {'省份': province, '比例': value}res = pd.DataFrame(res)res.to_excel(excel_writer=work, sheet_name=time)data_type = "scale"
f = pd.DataFrame()
f.to_excel('{}.xlsx'.format(data_type))
work = pd.ExcelWriter('{}.xlsx'.format(data_type))
t = 20200115
time_slots = list(range(20200115, 20200132)) + list(range(20200201, 20200230)) + list(range(20200301, 20200316))provinces = ["上海市", "北京市", "重庆市", "天津市", "内蒙古自治区", "广西壮族自治区", "西藏自治区", "新疆维吾尔自治区", "宁夏回族自治区", "河北省", "山西省", "辽宁省", "吉林省", "黑龙江省", "江苏省",  "浙江省", "安徽省", "福建省",  "江西省", "山东省", "河南省", "湖北省", "湖南省", "广东省", "海南省", "四川省", "贵州省", "云南省", "陕西省", "甘肃省", "青海省"]code = get_code_city()
province_scale_dict = {}
province_scale_dict["时间"] = time_slots
for name, num in code.items():url = 'http://huiyan.baidu.com/migration/historycurve.jsonp?' \'dt=province&id={}&type=move_in&date={}'.format(str(num), str(t))head = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ''AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/74.0.3729.169 Safari/537.36'}req = urllib.request.Request(url, headers=head)response = urllib.request.urlopen(url)html = response.read().decode('unicode_escape')if html.startswith("cb"):html = html[3:-1]data = eval(html)["data"]scales = []for time in data["list"]:if int(time) in time_slots:scales.append(data["list"][time])province_scale_dict[name] = scalesres = pd.DataFrame(province_scale_dict)res.to_excel(excel_writer=work)work.save()

在这里插入图片描述
规模爬虫结果保存在scale.xlsx中


http://chatgpt.dhexx.cn/article/P9WdsJ6o.shtml

相关文章

百度大数据迁徙

我记得,百度地图应该是2018年开始做每年春运出行大数据迁移,2019年加入了国庆的迁移大数据分析。这是纯免费的大数据分析数据,相当有意思,但是不作保存,每年做个记录,应该是件有价值的事。 从整体来看&…

什么是计算迁移

0 1 计算迁移背景 边缘计算将网络边缘上的计算、存储等资源进行有机融合,构建成统一的用户服务平台,按就近服务原则对网络边缘节点任务请求及时响应并有效处理。由于边缘节点能力、资源、带宽、能源等受限,计算迁移便异常重要。计算迁移是边缘…

迁徙数据平台简单介绍

引言 人口迁徙数据是研究人口流动、人口迁徙以及城市发展的重要数据源。近年来,受新冠肺炎疫情影响,以及互联网的快速发展,相关数据受到广泛关注与应用,以人口迁徙数据为基础的科学研究也层出不穷。在这里,就对几种常…

人口迁徙大数据(2019-2020年)

人口迁徙大数据具有极高的研究价值,特别是与城市群、疫情等重要话题结合起来,发表了很多核心期刊: 迁徙数据(1) 高德地图人口迁徙数据:2020年前6个月的400多万条数据,数据为日数据,…

【迁移学习】分布差异的度量以及迁移学习的统一表征方法

在文本分类中,由于文本数据有其领域特殊性,因此,在一个领域上训练的分类器,不能直接拿来作用到另一个领域上,这就需要用到迁移学习。 迁移学习是机器学习中重要的研究领域,ICML、NIPS、AAAI、ICIR等国际人工…

手把手实操系列|贷后迁徙率模型开发(上篇)

序言: 很多关注番茄风控的老铁们都知道,番茄风控的开篇就是从系统性的贷后评分卡开始的,关于贷后相关的内容,番茄不敢说是元老级别的公众号,但再怎么说也是先行者,之前的文章比如这些经典内容,您…

手把手系列|贷后评分(C)卡模型开发实操(全)

序言: 随着风控精细化的管理,番茄风控也就将现有的内容进一步迭代,更新贷后迁徙率模型的内容,同时也综合了星球社区中同学的一些新需求,给大家梳理了贷后迁徙率模型的文章。 希望对所有的风控人员在贷后相关的模型开发…

催收评分卡(三)迁徙率模型

关注公众号“ 番茄风控大数据”,获取更多数据分析与风控大数据的实用干货。 本文主要介绍迁徙率模型和还款率模型,至于失联模型,其实也不难做,难点是在于每家公司对失联客户的定义,主要是需要把多长失时间内失联的客户…

风险资产常用指标

目录 1.放款本金与本金余额 2.迁徙率 3.Vintage 4.不良率 5.损失率 6.回收率 7.入催率 8.首逾率 1.放款本金与本金余额 放款本金为每个月的放贷金额,本金余额为截止统计时点,所有未收回的本金金额,包括逾期未还本金与未到还款期限的待还本金…

前端数据分页——table表数据分页方法(1)

我们在页面展示一个table表格的时候,当数据量较大时,常常会考虑到数据分页的问题,数据分页一般有三种方式,分别是前端数据分页,后端数据分页,数据库分页。 前端数据分页:是把所有数据加载到前端…

利用vue实现树表格分页

目录 1. 准备工作 2. 动态树 2.1 在配置请求路径 2.2 使用动态数据构建导航菜单 2.2.1 通过接口获取数据 2.2.3 通过后台获取的数据构建菜单导航 2.3 点击菜单实现路由跳转 2.3.1 创建书本管理组件 2.3.2 配置路由 2.3.3 修改LeftAside组件 2.3.4 修改Main组件 3. …

Layui 表格分页控件

分页模块 – layui.laypage layPage 致力于提供极致的分页逻辑,既可轻松胜任异步分页,也可作为页面刷新式分页。 快速使用 laypage 的使用非常简单,指向一个用于存放分页的容器,通过服务端得到一些初始值,即可完成分页渲染: 基础参数选项 通过核心方法:laypage.rende…

ant design pro表格分页

需要用到表格的配置项pagination pagination{{ showQuickJumper:true, showTotal:function(total, range){ return( 共total条 ) } }} 效果: 这样可以选择跳转到某个页面,如果如数的数值大于最后一页,那么将跳转到最后一页&#xf…

Thinkphp+layui数据表格实现表格分页

项目场景:Thinkphplayui数据表格实现表格分页 提示:thinkphplayui数据表格分页,需要服务器端配合。之前在百度上一通乱搜也没找到解决方案。 问题描述 提示:这里描述项目中遇到的问题: 之前一看layui的文档一只以…

Vue+elementUI实现Table表格分页效果

VueelementUI实现Table表格分页效果 在毕业项目书写时,需要实现分页效果,而查找了大部分资料,大多是静态Table表格的分页,而该项目的数据大多是后台查询后的动态数据,于是我参考了网上的方法,并进行了一系列…

layui 树形表格分页功能

layui目前仅有常规表格分页及树形图,未能有树形图分页功能, 采用另外单独设立分页栏,分页改变时调用方法重载树形树形表格数据。 20230628更 感谢各位的喜欢,因不经常登录,这里贴一下部分代码,以供参考。 后台部分为…

JAVA_树状表格分页(layUI、treeTable.js)

效果图展示(PS:本人很懒,刚开始想在网上随意找一个就用,后来发现好像PHP的不少,JAVA的树状表格大多数跟我开始写的一样没有分页,导致数据量过大后加载过于缓慢被客户吐糟,最后没找到合适的就自己写了一个简单的demo&am…

关于layui表格分页问题

分页时注意 limitName必须与后端接收时的字段名相同 后端接收时需要注意page>0时需要page-1

vue 实现简单表格分页功能

使用框架实现表格展示和跳转功能&#xff0c;一直不懂原理。所以自己写一个简单的&#xff0c;加深理解。 布局分为2块&#xff0c;上面是表格展示数据&#xff0c;下面是点击按钮跳转。 效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en&q…

element 表格分页选中

需求&#xff1a; 分页表格实现分页选中&#xff0c;编辑时可以进行回显。 实现&#xff1a; 刚开始拿到需求后本来是自己写代码实现分页选中&#xff0c;后来查了文档&#xff0c;发现可以根据element-table中的提供的属性实现&#xff1b;如下图方式实现&#xff1b; //el…