python爬取百度迁徙数据_python爬虫-动态爬取百度迁徙

#1.模拟浏览器发送请求

importrequestsimportjsonimportpandas as pd

city_name=[]

province_name=[]

value=[]

url= 'https://huiyan.baidu.com/migration/cityrank.jsonp?dt=country&id=0&type=move_in&date=20200315&callback=jsonp_1590404076900_7186798'rq=requests.get(url)

rq.status_code

html= rq.content.decode('utf-8')#2.从html中提取信息#字符串预处理

html1 = html[28:-1]

data= json.loads(html1)['data']['list']for i inrange(len(data)):

city_name.append(data[i]['city_name']) #赋值给一个列表

province_name.append(data[i]['province_name'])

value.append(data[i]['value'])#3.数据的本地存储

move_in_data =pd.DataFrame({'迁入城市':city_name,'迁入省份':province_name,'比例':value

})

move_in_data.to_excel('./move_in_data.xlsx')

一、分析网站

首先我们来分析网站,动态爬取与静态爬取有些不同,寻找的数据就不在前端上面找了,而是在加载的文件中寻找

1951345-20200525185612612-1135017129.png

打开网页F12,一般我们先看js文件,如果没有,看看XHR等其他文件。按size排序,从大到小,查找数据

1951345-20200525185947332-671713880.png

点击Preview选项,一个个查找,可以看到这里与前端显示的数据是一样的,接下来我们就要爬取这个数据

二、爬取数据

1、模拟浏览器发送数据

importrequests

url= 'https://huiyan.baidu.com/migration/cityrank.jsonp?dt=country&id=0&type=move_in&date=20200315&callback=jsonp_1590404076900_7186798'rq=requests.get(url)

rq.status_code

html= rq.content.decode('utf-8')

当我们查看rq.status_code状态码时,返回为200,则说明没有设置反爬机制,不用设置header,若设置了反爬机制,状态码为418,就要像上一篇一样,设置header

1951345-20200525193312532-2072479552.png

此刻查看html,已经爬取下来了

2、提取html中数据

html1 = html[28:-1]

data= json.loads(html1)['data']['list']for i inrange(len(data)):

city_name.append(data[i]['city_name']) #赋值给一个列表,.append表示追加

province_name.append(data[i]['province_name'])

value.append(data[i]['value'])

我们想要的是data里面的数据,那么首先就要截取字典,{}里面的东西

1951345-20200525193445327-1472539230.png

有一个 方法是直接截取

html1 = html[28:-2]

28是第28位,-2是倒数二位,意思就是只要从48位到-2位之间的内容

输出html1为(注意{}的首位闭合)

1951345-20200525194053241-34109592.png

然后进行解析

data = json.loads(html1)

json.load(filename)

json.loads(string)

一个从文件加载,一个从内存加载

1951345-20200525195213706-1091991734.png

我们想要的是data里面的内容,可以直接

data = json.loads(html1)['data']

1951345-20200525195443654-229249418.png

读取字典中第一个列表的字段

data['list'][0]['city_name']

1951345-20200525200004878-1236765380.png

3、将数据保存在本地

move_in_data =pd.DataFrame({'迁入城市':city_name,'迁入省份':province_name,'比例':value

})

move_in_data.to_excel('./move_in_data.xlsx')

1951345-20200525201408897-1746562654.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机系统硬盘内存主频,内存时序和频率_内存硬盘-中关村在线

内存时序和频率内存时序是描述内存条性能的一种参数,一般存储在内存条的SPD中。一般数字“A-B-C-D”分别对应的参数是“CL-tRCD-tRP-tRAS”,它们的含义依次为:CAS Latency(简称CL值)内存CAS延迟时间,它是内存的重要参数之一&#…

ubuntun系统mysql数据库同步_Canal 实现 Mysql数据库实时数据同步

简介1.1 canal介绍​ Canal是一个基于MySQL二进制日志的高性能数据同步系统。Canal广泛用于阿里巴巴集团(包括https://www.taobao.com),以提供可靠的低延迟增量数据管道,github地址:https://github.com/alibaba/canalC…

int数组初始化_Java数组

###理解数组Java的数组要求所有的元素为相同数据类型。既可以存储基本类型的数据,也可以存储引用类型的数据,只要所有元素的类型相同就可以。一旦数组的初始化完成,数组在内存中占用的空间就被固定下来,因此数组长度不可变&#x…

各自然带代表植被_植被垂直带谱?水与热之间的较量。

随着海拔高度的上升,从山麓到山顶年平均气温逐渐降低,生长季节逐渐缩短,同时在一定海拔范围内随着降水量的增加,风速加大,辐射增强,土壤条件也发生相应的变化。在以上因素的综合作用下,植被表现…

ora00936缺失表达式怎么解决_初学者学习AE经常会遇到问题及解决方法,快进来看看吧!~~...

关于软件常见问题请一定要收藏对初学者的你绝对有用首先解决的第一个问题是:软件安装失败提示及解决方案说起原因安装失败是由AE的某些文件没有删除干净(绿化版本极易造成,不建议安装)解决方案(所有Adobe软件通用)如果安装过Adobe公司的软件需要在以下路…

matlab画出周期为2的方波图形 傅立叶级数_高等数学系列R之四:傅立叶级数及变换...

2020-03-23傅立叶级数是将周期函数表示成由多个 (或无穷多个) 不同频率的正弦函数和余弦函数的线性组合,这些不同的频率是不连续的,例如傅立叶级数:,其 sin 内的 x, 3x, 5x 是不连续的。而傅立叶积分是将傅立叶级数延伸到非周期函…

两线怎么接三线插座图_什么是RTD热电阻?两线制和三线制RTD有什么不同?

RTD的英文全称为“Resistance Temperature Detector”,因此准确来说,它应该翻译为“电阻温度检测器”。RTD是一种特殊的电阻,其阻值会随着温度的升高而变大,随着温度的降低而减小。工业上利用它的这一特性进行温度测量&#xff0c…

计算机内存条价格,最新内存条天梯图2020 内存条全面选购指南

*文章末尾有内存条推荐。电脑内存(RAM)是程序运行的地方,当你打开一款软件、游戏时,系统会将硬盘中的必要数据复制到内存中,CPU 再从内存中获取数据,因为内存的速度比硬盘要快的多多多。唯一的遗憾是每次内存断电,其中…

eclipse html插件_欲善事先利器——IDEA 插件篇

工欲善其事,必先利其器,好鞋踢好球是非常合乎逻辑的事情。——《长江七号》同样的开场白,不一样的酒,不一样的故事。上篇《欲善事先利器——系统篇》已经推荐了一些个人常用的效率系统软件。觉得有帮助的,有共鸣的 Roc…

怎么挪动_2020蚕茧多少钱一斤,蚕茧怎么做成蚕丝被

href"http://www.88360.com/product/bplist-1904/splist-1904-2063/">蚕茧 又被称作蚕衣,指包囊桑蚕的茧,为蚕蛹阶段的防护层,在其中包含茧衣、茧层及其蛹衬等一部分,茧层能够缫丝,茧衣及缫制后的废丝能用…

flash软件视频不能测试,360安全卫士解决视频播放错误怎么办?无法调出flash解决办法...

使用电脑继续观看视频的时候,小伙伴们通常都会遇到一件事,那就是视频突然的播放错误,这个时候怎么使用360安全卫士解决,因此就让小编给大家详细的讲讲解决办法吧视频播放错误解决办法介绍【简易步骤】:【360安全卫士】…

autohotkey实例+懒人包_懒人福音——GitHub 热点速览 Vol.42

作者:HelloGitHub-小鱼干懒人福音是什么?就是省时省事,正如 Waypoint 一样,你不需要在多个平台构建代码即可部署发布应用,它允许你将应用程序构建、部署和发布生命周期定义为代码。Bit 则让你不需要记 git 操作&#x…

蓝牙连接不上车要hfp_鹅厂又要霸屏,连接四部剧将袭,冲着主创颜值不追不行啦...

对于鹅厂的电视剧,相信观众们都有看过不少吧!其中近期热播的《小风暴之时间的玫瑰》这部高甜的影视剧就备受观众们喜爱了。毕竟《小风暴》不管是剧情还是剧中的人物选角都让我们非常满意,剧中有胡一天和乔欣这两位高颜值主演疯狂“撒狗粮”的…

ios服务器需要开启ipv6的支持,针对iOS审核要求为应用兼容IPv6

开发中使用IPv6的好处1、IPv6:避免了网络地址转换(NAT)2、通过网络通过使用简化的头提供了更快的路由3、防止网络分段4、避免广播邻居地址解析不建议使用底层的网络API下图展示的蓝色部分的这些API都是不存在兼容性问题的,而我们平时自己用的包括那些第三方的网络库…

verilog换行太长代码_Verilog 之 File I/O task and function

不点蓝字,何来故事?许久之前关于Verilog I/O操作的一篇笔记梳理,再此与诸君共分享。0I/O操作类型verilog中关于文件操作的任务和函数主要分为四类:(1)打开和关闭文件的任务和函数(2) 向文件中输入信息的任务(3) 向变量中输入信息的…

MFC读取文件数据,添加信息到列表并保存到文件

打开并读取文件信息 添加: BOOL infoDlg::OnInitDialog() {CDialogEx::OnInitDialog();// TODO: 在此添加额外的初始化AfxMessageBox("欢迎查看学生信息");SetList();return TRUE; // return TRUE unless you set the focus to a control// 异常: OCX 属…

nginx 上传 文件超时设置_Ingressnginx自定义配置文件

点击上方蓝色字体,关注我们读完需 8 分钟速读需 4 分钟k8s集群默认安装的ingress-nginx直接投入测试或生产使用,其不合适的配置参数可能会导致一些访问报错。例如:“413 Request Entity Too Large”“503 Service Unavailable”此时我们就需要…

fiddler安装_Fiddler的安装和APP抓包

点击上方“蓝字”关注我们吧!前言1.Fiddler安装包2.安卓手机3.iOS手机1.下载fiddler软件:可以去官网下载https://www.telerik.com/fiddler,可以下载最新版2.百度云盘(非最新版):链接:https://pan.baidu.com/s/10XVzoxw…

div中的p标签于img设置同一水平_前端工程师:css中一些需要注意的东西

html标签有三大性质,如果不清楚这些东西,在使用css添花的时候可能会糊涂的不知所措。一、块级元素块元素会独自占据一整行,或者多行,可以任意设置其大小尺寸,是用于搭建网页布局的必须部分,使网页结构更加紧…

python用电度数设计_用Python实现一个爬取XX大学电费通知的小脚本

内容简要 1分析网站 2简单爬取 3进阶自定义爬取 4保存进数据库 学校基础设施太差,宿舍电量过低提醒虽然贴在楼下,但是作为低头一族,经常忘记看提醒导致宿舍酣战时突然黑屏,为了避免这种尴尬的场景以及强化PY学习,我决定…