使用python爬取数据并分析2018北京积分落户情况
本帖最后由 ProgramerFangL 于 2018-10-17 10:59 编辑昨天北京市人保局公布了2018年的积分落户名单,看到一群大佬的积分以后,作为小菜鸟的我只能感叹大佬是真的大佬。心血来潮之下,决定把大佬们的数据爬下来,研究一下成功的秘诀。
首先分享一下爬虫的代码。在找到页面请求的url后,通过查看返回值得到,数据共有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]
year = idCard
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
```
数据入库后如图所示:
好啦。数据入库后就可以开始我们的分析了
先来看一波大佬们的公司top10:
大厂就是大厂,华为作为老大哥,看来不是没有道理的,员工实力都很强,数据遥遥领先。
接下来是省份分析:
可以看到,主要的人员大部分来自于京津冀及周边辐射地区。
最后是一波年龄统计。
看到大佬们的年龄各位是不是顿时就平衡了,原来不是我们太弱,是因为我们和大佬之间还差了20岁(手动滑稽)
到此为止,这次心血来潮的分析就结束了,该去继续加班了{:1_937:}
出图代码放在了这儿使用python爬取数据并分析2018北京积分落户情况【出图代码】
求免费的评分啊哥哥们 免费的积分给点儿呗伙计们 shezexin 发表于 2018-10-17 10:04
忽然有了学习python的兴趣。。。。楼主大大有什么学习资源推荐吗?
其实我也没入门。。。{:1_907:} 玩世不攻 发表于 2018-10-17 23:42
为什么现在没有idCard的数据了
idCard是隐藏数据,页面上并没有展示。 楼主,那统计图也是python做的么? 统计图也是py做的,明天有空把代码给你们放上来 february 发表于 2018-10-16 18:22
楼主,那统计图也是python做的么?
pyecharts
http://pyecharts.org/ 厉害,谢谢楼主!回去研究研究 楼主果然牛牛 看一下,了解一下 忽然有了学习python的兴趣。。。。楼主大大有什么学习资源推荐吗? 膜拜中,!!!