简介
百度迁徙 :百度迁徙
不多逼逼,相关的自己了解。趁这几天比较好抓取数据,需要的数据就赶紧抓抓抓。
效果展示
本文的数据主要是来自百度迁徙里面的迁徙规模指数,如下图。
本文提供的代码可以批量抓取数据,如抓取所有城市级别的迁入规模指数放进一个表格里,迁出规模指数放进另一个表格里,这样。或者你也可以设定抓取所有省份级别的数据。如下图,我分别按全国级别、省份级别、城市级别抓取,共获得五个表格,为什么是五个呢,因为全国的数据没有分迁入迁出,按照百度迁徙的说法是“全国为总体迁徙规模,不区分迁入或迁出”。当然也可以通过自定义字典来抓取你想要的城市,具体可参考第三部分“准备——城市编码”。
先展示一波抓取后的数据,各位看官看看是不是自己需要的,如下图。
因为上上图的迁徙规模指数的曲线有和去年农历同期对比,所以我就连去年的指数也抓取了,第一行是日期,去年的日期在前面,今年的在后面,你越晚抓取,今年的日期就越多。
准备——城市编码
城市编码和我的上一篇文章一样,可以直接参考。
代码
记得调用相关的城市编码和省份编码数据。
# -*- coding: utf-8 -*-
import requests #导入请求模块
import json #导入json模块
import time #导入时间模块
import xlrd
import xlwt
from ChineseAdminiDivisionsDict import CitiesCode, ProvinceCode
def migration_index(FileTittle,classname,direction,CodeDict): #CodeDict字典里所有城市的迁徙规模指数,以全国列表形式列出
#######创建一个workbook########
workbook = xlwt.Workbook(encoding = 'utf-8') # 创建一个workbook 设置编码
worksheet = workbook.add_sheet('Sheet', cell_overwrite_ok=True) # 创建一个worksheet
#################写入行头各城市代码及其城市名###############
if direction == 'in' :
nameofdire = '迁入'
if direction == 'out':
nameofdire = '迁出'
CitiesOrder = {} #存放城市序号的空字典
worksheet.write(0 , 0 , label='城市代码') #写入行头
worksheet.write(0 , 1 , label='城市') #写入行头