百度迁徙爬虫工具:Baidu_migration_crawler

Baidu_migration_crawler是一个百度迁徙数据爬虫

新冠肺炎抗疫形势严峻,国内多家公司都为抗疫贡献了自己的力量,如丁香园的疫情播报和地图,百度迁徙的人口流动信息等。这些数据能够为分析和预测疫情传播、发展提供重要基础。

为了让百度迁徙提供的人口流动数据更便于分析,笔者使用Python制作了Baidu_migration_crawler工具来进行自动的数据爬取和解析存储。

  • 注:使用该工具需要先安装MongoDB数据库(非常适合存储这种形式的数据)和相关Python依赖

功能介绍

爬取百度迁徙上的数据,支持每日增量爬取以下内容:

  • 人口迁出数据(比例):市级->省级、市级->市级、省级->省级、省级->市级
  • 人口迁入数据(比例):市级->省级、市级->市级、省级->省级、省级->市级
  • 人口迁出数据(数值/规模指数):市级、省级
  • 人口迁入数据(数值/规模指数):市级、省级
  • 全国迁出数据(比例):市级、省级
  • 全国迁入数据(比例):市级、省级
  • 城内迁徙数据:市级

项目地址

  • https://github.com/tomleung1996/Baidu_migration_crawler

数据样例

百度迁徙爬虫工具:Baidu_migration_crawler_第1张图片

环境依赖

  • requests
  • tqdm
  • pymongo
  • MongoDB数据库
  • json

使用方法

location_ids.txt文件存放了待爬取的省级、市级行政单位的行政区划代码,可根据需要自行修改

出于方便存取的考虑,数据存储使用了MongoDB数据库,需要安装相应的环境才能使用本程序。如有需要请修改connect_str为自己的数据库连接URL

执行main.py中的fetch_timerange()方法,传入格式为YYYYMMDD的起止日期即可进行爬取,如20200402。若仅需要爬取一天,则设置相同的起止日期

数据结构

数据包含三个Collection,分别为全国分布数据(cn_distribution)、省级迁徙数据(province_flow)和市级迁徙数据(city_flow):

  • 全国分布数据(cn_distribution),每日的数据包含4个Document,分别为省级的迁入(move_in)、迁出(move_out)和市级的迁入、迁出情况。每个Document中包含各省或市的具体情况数组。
  • 省级迁徙数据(province_flow),每日的数据包含33 * 4个Document,即我国33个省级行政单位(含直辖市及港澳,不含台湾地区)每日的省级迁入、迁出和市级迁入、迁出情况。
  • 市级迁徙数据(city_flow),每日的数据包含368 * 4个Document,即百度迁徙所收录的368个市级行政单位(为方便分析,含直辖市及港澳,不含台湾地区)每日的省级迁入、迁出和市级迁入、迁出情况。

你可能感兴趣的:(百度迁徙爬虫工具:Baidu_migration_crawler)