datatables每页显示数据刷新后不变_2019北京积分落户名单数据的一些分析


2020,新一波北京积分落户又开始了。

在此,奉上去年闲来无事分析的19年北京积分落户的一些公开数据,把握一下猴年马月才能中标的趋势。

前半部分主要是技术环节,心急的可以直接跳到后半部分看具体的数据分析。

这本来应该是一篇关于Python爬虫爬取大数据并进行分析的故事,然而进行下去之后发现并不是那么回事儿。。。。

10月15日,2019年北京积分落户名单公布了,这是自去年以来的第二次。虽然再次“与女无瓜”,分数还差得老远,但是还是想看看榜上都是何方神圣,分析一下入围的秘方。

http://rsj.beijing.gov.cn/integralpublic/settleperson/settlePersonTable

b793a90a6b6cc306bd79528cd518917a.png


人社局的这个网站看着着实麻烦,每页最多显示100条信息,今年一共6007人,那得翻60多页啊~~~~

这种麻烦事,必须用爬虫啊。

可,可我不会啊。。。。

于是乎,只能现上网搜教程,发挥我的学习能力了。

在众多Python爬虫方法中,我发现了一个叫做Pyspider的框架。这个方法非常好,优点在于是基于webUI界面的开发环境,支持任务监控,支持JS,支持多种数据库,对于爬虫新手,并且html不太熟的新手来说很友好。唯一缺点就是环境搭建各种的坑啊。起先是需要安装各种依赖包,什么PhantomJS、pycurl等等装了个遍。然后Python IDLE又运行不起来了,原来是Mac更新了10.15后不支持32bit程序了,需要升级Python到64bit的版本。等升级完Python 3.8以后,发现刚安装的Pyspider又启动不了。上网搜了下报错信息,是因为Python 3.7以后把async设为了关键字,与Pyspider框架中的async函数名重复了导致报错,最后我又一个一个py文件复查,更改冲突函数名,这才让小爬虫跑起来。这一折腾就半天过去了。

9d4f9e77461577e1b654b873ee155590.png

上网搜了几个Pyspider的案例,又详细看了下官方的doc文档,发现Pyspider确实比较容易上手的,demo程序几乎都是三段式或四段式结构:起先定义一个on_start()函数,然后是定义index_page()函数,最后是detail_page()函数用于储存结果,如果需要对结果进行筛选,还可以再定义一个on_result()函数。

8a7f05c2507ee7281d6500383360b0e3.png

对于Pyspider大体框架粗略学习了一通以后,找了一个比较接近本次爬虫需求的demo代码开始修改了。改着改着发现了重大问题!本次人社局这个名单的网址,并不会随着切换页面而改变啊。也就是说这个网址(http://rsj.beijing.gov.cn/integralpublic/settleperson/settlePersonTable),不论点击页面是那个第几页,依然显示同样的url,而不会像某些网页那样url后缀会变为page0,page1,page2等等。这样就导致一个问题——没法翻页。也就是说,在index_page()函数中,本应该定义循环翻页的操作就没法做了。

e61ff55b3dad8de625bf1d96373781b3.png

例如上面这段demo,就是根据url后面的page数值进行循环操作的

再次上网搜索后,居然又get到了新知识点。要不怎么说学无止境呢:原来这类型网页是使用了Ajax动态加载技术,可以在不重新加载整个网页的情况下,对网页的某部分进行更新。这种网页可能就是故意给我们这类爬虫新手制造困难的吧。对于这类网页,就需要对url进行解析了。

先使用Chrome浏览器打开积分落户名单网页。右键选择“检查”,进入开发者环境。之后在打开的窗口中菜单栏里选择Network。Network面板主要就是记录从发起网页页面请求Request后,分析http请求得到的各个资源信息。根据这些内容进行网络优化。当然,网优并非本次关注的内容,我们主要还是寄希望于可以从Request命令中看到真实的url地址。

257454a8acaca0635f3ab55418ad3db2.png

参见图中标红处


Network面板打开后显示内容为空。我们在网页上依次点击几下落户名单页码看看会发生什么。当我们依次点击了页码2、3、4后,会看到Network面板上随点击出现了一些条目“tablePage“,这就是每次点击事件发出后的Request和Response。

969ca24a63979e0b1b2198dbf70a5454.png

点击页码就生成了一个一个的tablePage

我们点开一个条目进行查看,看到在Header标签下,给出一个Request URL http://rsj.beijing.gov.cn/integralpublic/settlePerson/tablePage,这就是网页上数据表格中内容被调用的真实路径,但这个路径还没完,接着往下看。

189ca3b9a6396c6bee2994a62dc0af41.png

这是某一个网页页码对应的Request URL

在Header标签中移动到最底部。在Form data中选择view source,可以看到rows和page两个属性分别带有一些数值——“name=&rows=10&page=10”,这就是真实路径的第二部分。我们不断点选网页页码,可以看到rows=10是固定不变的,意味着每页显示10行信息;而page的数值,会随着网页页码的点击而变化,例如第一页page=1,第二页page=10,第三页page=20等等。

6468eaba23d3050fdf517757f6759d03.png

URL的后半截

接下来需要将两段url组合到一起,用“?”拼接,即“http://rsj.beijing.gov.cn/integralpublic/settlePerson/tablePage?name=&rows=10&page=0”。可以在浏览器中打开这个链接看一下,打开的就正是落户名单的第二页了。

2d0b6a5c7413786cc031c9f5d4ccd2ec.png

注意看浏览器的网页地址

我突然意识到,如果人为修改这个rows和page的参数,能否以一页页面,显示所有6007条落户信息呢?通过修改rows=6007,page=0,再次在浏览器中打开,bravo,所有落户信息通过一张表格全部展现了。最后直接复制粘贴到EXCEL,完成。

a6154e31294a97c03ad85cf82eef2f54.png

那么问题来了。到底还需要继续pyspider爬虫来抓取数据吗?看来应该是不需要了吧。当然爬虫技术的学习并非告一段落,而是爬虫的工作范围可能更适用于需要定期刷新的和数据量更大的场景,像这种数据量较少的活儿,通过拼接个URL的方式可能更简单一些吧。

下面看一看今年积分落户名单能挖掘到哪些信息点呢?跟2018年名单相比,本次公布的名单少了身份证号一列,于是很重要的信息——落户前户籍属性,就无法进行分析。这其实是一个很有意思的挖掘点。

总体落户人群画像:75后,大学本科毕业,几乎毕业后就在京工作,就职于科技企业收入较高,并按照正常社会进度进行购房结婚的人士。

按年龄段来划分的话,本次落户人士更多落在了41~45岁区间。

e94a3f45c5db6a728fd83b8543ef3352.png


19年落户人士的年龄最多集中在41岁(1978年),其次为42岁(1977年)和43岁(1976年),总体呈现正态分布的趋势。相比18年,人数峰值略微年轻1岁,但总体峰值人群依然集中在41~43岁。(如果靠连续两年数据来推断的话,峰值人群年龄有年轻化的趋势)。

53c4450abb23376473a88e96c22b7246.png

c610af97f0ff4b001ca3de5912a234f4.png

2018年积分落户年龄分布(图片来自网络ProgramerFangL网友创作)

大多数人士的积分落在了94~94.99分数区间,更高分数形成了一个长尾。

b79d65f8d1c650c8c8d3ed1aaf08ecd1.png


由于榜单中各组织中,有存在多个组织隶属于同一总公司的情况。限于归类困难的原因,仅按照榜单公示的组织名称进行划分。其中,华为数字公司员工落户人数远超其他单位,是排名第二央视的近一倍了(如算上华为北研所的人数,将达到263人)。排在前列的公司中,科技类公司落户人数明显占多数。

383e9fc30d48bb5c70c08d5a986e0340.png


从年龄与分数段交叉比较来看,现年40岁以下者取得高分的人数依然很低。由此看来,“年限”可能是分数拉开差距的最关键一环。

663f548bb62f290b11505797d5e04844.png


总体分析来看,按照目前趋势预估,41~43岁为积分落户成功率最高年龄,所以85年生人达到落户峰值大概在4~5年后。当前落户关键因素,社保满一年记3分,这是所有积分项里增幅最大者,一定保证社保不要断;其次,不要卖房,自有住房满一年记1分,也很关键;第三,一定要保证自己在接近落户最可能年限前,依然保持年纳税10万以上,这一项直接决定6分能否到手。

有余力的本科学历者,可以去考个非全日制硕士啥的,一次性就比本科生多11分了。然而这也是个悖论,你周末去上课去了,不加班,老板凭啥给你年纳税10万以上的工资呢。。。。。orz

再有就是,碰上狗屎运,能在自己岗位上好好干,干出点两弹一星相媲美的成绩的,申请个重大科技成果,一次性加个几十分就直接出现了啊。。。。。。

不要寄希望于路见不平拔刀相助,见义勇为还得看自身体质了。。。。。。

当然,后续的游戏规则怎样,还得看zf了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值