吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6219|回复: 27
收起左侧

[Python 转载] 使用python爬取数据并分析2018北京积分落户情况

[复制链接]
ProgramerFangL 发表于 2018-10-16 17:57
本帖最后由 ProgramerFangL 于 2018-10-17 10:59 编辑

昨天北京市人保局公布了2018年的积分落户名单,看到一群大佬的积分以后,作为小菜鸟的我只能感叹大佬是真的大佬。心血来潮之下,决定把大佬们的数据爬下来,研究一下成功的秘诀。
首先分享一下爬虫的代码。在找到页面请求的url后,通过查看返回值得到 捕获.PNG ,数据共有6019条,602页。继续对参数进行调试,发现翻页只需要改变page参数即可。到此简单的爬虫思路就OK了。然后简单粗暴的直接爬取入库。代码如下。
#-*-coding:utf-8-*-
import urllib2
import time
import MySQLdb
import json
import sys
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:
        reload(sys)
        sys.setdefaultencoding(defaultencoding)
db = MySQLdb.connect("localhost", "root", "root", "py", charset='utf8' )
cursor = db.cursor()
pageNum = 1
page = 0
while(page < 6020):
    try:
        page = (pageNum - 1) * 10
        initUrl = "http://www.bjrbj.gov.cn/integralpublic/settlePerson/settlePersonJson?sort=pxid&order=asc&limit=10&offset=10&name=&rows=10&page=%s" %page
        print initUrl
        req = urllib2.Request(initUrl.encode('utf8'))
        htmlContent = urllib2.urlopen(req, timeout=5).read()
        htmlContent = htmlContent.decode("gbk")
        js = json.loads(htmlContent)
        rows = js['rows']
        for row in rows:
            area = {"11": "北京", "12": "天津", "13": "河北", "14": "山西", "15": "内蒙古", "21": "辽宁", "22": "吉林", "23": "黑龙江",
                "31": "上海", "32": "江苏", "33": "浙江", "34": "安徽", "35": "福建", "36": "江西", "37": "山东", "41": "河南",
                "42": "湖北", "43": "湖南", "44": "广东", "45": "广西", "46": "海南", "50": "重庆", "51": "四川", "52": "贵州",
                "53": "云南", "54": "西藏", "61": "陕西", "62": "甘肃", "63": "青海", "64": "宁夏", "65": "新疆", "71": "台湾",
                "81": "香港", "82": "澳门", "91": "国外"}
            row = json.dumps(row)
            row = json.loads(row)
            name = row['name']
            idCard = row['idCard']
            score = row['score']
            unit = row['unit']
            province = area[idCard[0:2]]
            year = idCard[6:10]
            sql = "insert into bjrbj(name,city,score,unit,idCard,year)values('%s','%s','%s','%s','%s','%s')"%(name,province,score,unit,idCard,year)
            try:
                cursor.execute(sql)
                db.commit()
            except:
                print "出错了!!"
                db.rollback()
        time.sleep(1)
        pageNum = pageNum+1
    except :
        continue

数据入库后如图所示:
database.PNG
好啦。数据入库后就可以开始我们的分析了
先来看一波大佬们的公司top10:
unit.PNG unitdata.PNG
大厂就是大厂,华为作为老大哥,看来不是没有道理的,员工实力都很强,数据遥遥领先。
接下来是省份分析:
city.PNG citydata.PNG
可以看到,主要的人员大部分来自于京津冀及周边辐射地区。
最后是一波年龄统计。
year.PNG
看到大佬们的年龄各位是不是顿时就平衡了,原来不是我们太弱,是因为我们和大佬之间还差了20岁(手动滑稽)
到此为止,这次心血来潮的分析就结束了,该去继续加班了{:1_937:}

出图代码放在了这儿  使用python爬取数据并分析2018北京积分落户情况【出图代码】

求免费的评分啊哥哥们

免费评分

参与人数 4吾爱币 +4 热心值 +4 收起 理由
luowolele + 1 + 1 热心回复!
小黑LLB + 1 + 1 我很赞同!
玩世不攻 + 1 + 1 热心回复!
WEITRYQQ + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| ProgramerFangL 发表于 2018-10-17 10:45
免费的积分给点儿呗伙计们
 楼主| ProgramerFangL 发表于 2018-10-17 14:22
shezexin 发表于 2018-10-17 10:04
忽然有了学习python的兴趣。。。。楼主大大有什么学习资源推荐吗?

其实我也没入门。。。
 楼主| ProgramerFangL 发表于 2018-10-17 23:56
玩世不攻 发表于 2018-10-17 23:42
为什么现在没有idCard的数据了

idCard是隐藏数据,页面上并没有展示。
february 发表于 2018-10-16 18:22
楼主,那统计图也是python做的么?
头像被屏蔽
沐雨红尘 发表于 2018-10-16 18:24
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| ProgramerFangL 发表于 2018-10-16 18:54 来自手机
统计图也是py做的,明天有空把代码给你们放上来
Qnly_genius 发表于 2018-10-16 19:51
february 发表于 2018-10-16 18:22
楼主,那统计图也是python做的么?

pyecharts
http://pyecharts.org/
流浪的二胡 发表于 2018-10-16 20:07
厉害,谢谢楼主!回去研究研究
simpanic 发表于 2018-10-16 20:46
楼主果然牛牛
victory6688 发表于 2018-10-16 21:26
看一下,了解一下
shezexin 发表于 2018-10-17 10:04
忽然有了学习python的兴趣。。。。楼主大大有什么学习资源推荐吗?
nj19 发表于 2018-10-17 10:33
膜拜中,!!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 14:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表