首页 编程教程正文

使用python爬取数据并分析2018北京积分落户情况

piaodoo 编程教程 2020-02-22 22:06:43 1072 0 python教程

本文来源吾爱破解论坛

本帖最后由 ProgramerFangL 于 2018-10-17 10:59 编辑

昨天北京市人保局公布了2018年的积分落户名单,看到一群大佬的积分以后,作为小菜鸟的我只能感叹大佬是真的大佬。心血来潮之下,决定把大佬们的数据爬下来,研究一下成功的秘诀。
首先分享一下爬虫的代码。在找到页面请求的url后,通过查看返回值得到

捕获.PNG (2.61 KB, 下载次数: 0)

下载附件  保存到相册

2018-10-16 17:32 上传

,数据共有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 (102 KB, 下载次数: 2)

下载附件  保存到相册

2018-10-16 17:37 上传


好啦。数据入库后就可以开始我们的分析了
先来看一波大佬们的公司top10:

unit.PNG (36.64 KB, 下载次数: 2)

下载附件  保存到相册

2018-10-16 17:47 上传

unitdata.PNG (45.14 KB, 下载次数: 2)

下载附件  保存到相册

2018-10-16 17:47 上传


大厂就是大厂,华为作为老大哥,看来不是没有道理的,员工实力都很强,数据遥遥领先。
接下来是省份分析:

city.PNG (34.26 KB, 下载次数: 1)

下载附件  保存到相册

2018-10-16 17:51 上传

citydata.PNG (26.18 KB, 下载次数: 1)

下载附件  保存到相册

2018-10-16 17:51 上传


可以看到,主要的人员大部分来自于京津冀及周边辐射地区。
最后是一波年龄统计。

year.PNG (34.17 KB, 下载次数: 1)

下载附件  保存到相册

2018-10-16 17:53 上传


看到大佬们的年龄各位是不是顿时就平衡了,原来不是我们太弱,是因为我们和大佬之间还差了20岁(手动滑稽)
到此为止,这次心血来潮的分析就结束了,该去继续加班了{:1_937:}

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

求免费的评分啊哥哥们

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7557.html

搜索