python爬取人口数据_爬取人口数据
一、主题式网络爬虫设计方案(15分)
1.主题式网络爬虫名称:爬取人口数据及数据可视化
2.主题式网络爬虫爬取的内容与数据特征分析:爬取国家统计局人口数据
3.主题式网络爬虫设计方案概述(包括实现思路与技术难点):首先找到爬取页面的源代码,找到所需要爬取的数据在源代码中的位置,接下来进行数据爬取,并将数据持久化,接下来对数据进行清洗处理,并进行数据分析和可视化
首先是页面如下
按f12
找到人口数据
1.数据爬取与采集(20)
import requests
import time
import json
import matplotlib.pyplot as plt
import pandas as pd
#用来获得 时间戳
def gettime():
return int(round(time.time()*1000))
if __name__=='__main__':
"一,请求数据"
#用来定义头部
headers={}
#用来传递参数
keyvalue={}
#目标网址
url='http://data.stats.gov.cn/easyquery.htm'
#头部填充
headers['User-Agent']='Mozilla/5.0 (Windows NT 10.0; Win64; x64) '\
'AppleWebKit/537.36 (KHTML, like Gecko)'\
'Chrome/70.0.3538.102 Safari/537.36'
#参数填充
keyvalue['m'] = 'QueryData'
keyvalue['dbcode'] = 'hgnd'
keyvalue['rowcode'] = 'zb'
keyvalue['colcode'] = 'sj'
keyvalue['wds'] = '[]'
keyvalue['dfwds'] = '[{"wdcode":"zb","valuecode":"A0301"}]'
keyvalue['k1'] = str(gettime())
# 发出请求,使用get方法,这里使用我们自定义的头部和参数
r = requests.get(url, headers=headers, params=keyvalue)
"二,解析数据"
year=[]
population=[]
data=json.loads(r.text)
data_one = data['returndata']['datanodes']
for value in data_one:
if('A030101_sj' in value['code']):
year.append(value['code'][-4:])
population.append(int(value['data']['strdata']))
print(year)
print(population)
2.对数据进行清洗和处理(10)
#检查重复
print(df.duplicated())
4.数据分析与可视化(例如:数据柱形图、直方图、散点图、盒图、分布图)(15分)
plt.figure()
plt.plot()
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.bar(year,population)
plt.xlabel('年份')
plt.ylabel('万人')
plt.title('年末总人口')
plt.show()
5.根据数据之间的关系,分析两个变量之间的相关系数,画出散点图,并建立变量之间的回归方程(一元或多元)(10分)。
6.数据持久化(5分)
将爬取的数据保存在111.csv中
df = pd.DataFrame({'year' : year, 'population' : population})
df.to_csv("C:/Users/lenovo/111.csv", index=False, sep=',')
7.将以上各部分的代码汇总,附上完整程序代码
import requests
import time
import json
import matplotlib.pyplot as plt
import pandas as pd
#用来获得 时间戳
def gettime():
return int(round(time.time()*1000))
if __name__=='__main__':
"一,请求数据"
#用来定义头部
headers={}
#用来传递参数
keyvalue={}
#目标网址
url='http://data.stats.gov.cn/easyquery.htm'
#头部填充
headers['User-Agent']='Mozilla/5.0 (Windows NT 10.0; Win64; x64) '\
'AppleWebKit/537.36 (KHTML, like Gecko)'\
'Chrome/70.0.3538.102 Safari/537.36'
#参数填充
keyvalue['m'] = 'QueryData'
keyvalue['dbcode'] = 'hgnd'
keyvalue['rowcode'] = 'zb'
keyvalue['colcode'] = 'sj'
keyvalue['wds'] = '[]'
keyvalue['dfwds'] = '[{"wdcode":"zb","valuecode":"A0301"}]'
keyvalue['k1'] = str(gettime())
# 发出请求,使用get方法,这里使用我们自定义的头部和参数
r = requests.get(url, headers=headers, params=keyvalue)
"二,解析数据"
year=[]
population=[]
data=json.loads(r.text)
data_one = data['returndata']['datanodes']
for value in data_one:
if('A030101_sj' in value['code']):
year.append(value['code'][-4:])
population.append(int(value['data']['strdata']))
print(year)
print(population)
#检查重复
print(df.duplicated())
df = pd.DataFrame({'year' : year, 'population' : population})
df.to_csv("C:/Users/lenovo/111.csv", index=False, sep=',')
"三,绘制数据"
plt.figure()
plt.plot()
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.bar(year,population)
plt.xlabel('年份')
plt.ylabel('万人')
plt.title('年末总人口')
plt.show()
四、结论(10分)
1.经过对主题数据的分析与可视化,可以得到哪些结论?
经过对主题数据的分析与可视化,可以得到中国人口数据增长情况
逐年在上涨
2.对本次程序设计任务完成的情况做一个简单的小结。
经过这次的学习与作业实践,学到了很多爬虫的知识,不过还是远远不够的。
自己还有很多不懂的地方,还需要继续学习
python爬取人口数据_爬取人口数据相关推荐
- python爬取客流数据_爬取首都机场客流量数据,从GIS的角度尝试分析建设大兴机场的必要性...
Hello, 大家好!我是James. 上一节我们整理好了北京的行政区和街道办矢量数据,估计跃跃欲试的小伙伴太热情,爬取的网站被玩坏了几天,学习可以,但是不要过多尝试了哈 然后在文章的最后,我们惊奇的 ...
- python爬虫爬取今日头条_爬取今日头条头条号文章数据
0,背景介绍 最近想爬取一些今日头条的文章浏览数据,分析哪些头条号做的好,那些做的不好. 今日头条 比如上图的阅读数,评论数以及文章标题,通过这些数据进行分析. 于是展开了艰难的爬虫探索之旅 第一目标 ...
- python爬取文献代码_爬取Pubmed文献及影响因子并尝试下载的脚本
Abstract 本脚本实现了通过Biopython爬取pubmed文献资料,并通过scholarscope爬取影响因子数据,最后尝试通过sci-hub下载文献,三位一体的方法. Introducti ...
- java爬取彩票数据_爬取彩票信息(有空试下)
暂且不说,彩票预测是否靠谱?彩票预测也分人而异,江湖上骗术很多,有些甚至会误以为彩票预测的准确度可以很高,这些操盘手法,让不知原理的彩民心甘情愿地掏钱买料. 在彩票预测上,也有正儿八经去研究" ...
- python电商项目介绍_电商大数据项目-推荐系统实战(一)
本项目是基于Spark MLLib的大数据电商推荐系统项目,使用了scala语言和java语言.基于python语言的推荐系统项目会另外写一篇博客.在阅读本博客以前,需要有以下基础: 1.linux的 ...
- python创建类统计属性_轻松创建统计数据的Python包
python创建类统计属性 介绍 (Introduction) Sometimes you may need a distribution figure for your slide or class ...
- 人口流向数据_中国各地人口净流入流出示意图
中国各地人口净流入流出示意图,每个县的常住人口除以当地户籍人口减去100%,采用2010年的数据.数据来源是很简单的:显示中国每一个县区的人口净流入流出(红色为流入,蓝色为流出,深色为流入流出率高,淡 ...
- mysql查询两个表中的不同数据_如何实现大数据在多工作表中精准查询
大家好,今日继续讲解VBA数据库解决方案,今日讲解第40讲:利用ADO实现同一文件的多个工作表精确查询.其实这讲的内容利用我之前讲解的知识点也可以自己完成.这里只是拿出来让大家再熟悉一下EXCEL的A ...
- 数据透视表怎么刷新数据_数据模型的Excel数据透视表刷新错误
数据透视表怎么刷新数据 A simple data change can cause a strange pivot table refresh error, if you added the dat ...
- udacity开源的数据_评论:Udacity数据分析师纳米学位计划
udacity开源的数据 by David Venturi 大卫·文图里(David Venturi) 评论:Udacity数据分析师纳米学位计划 (Review: Udacity Data Anal ...
最新文章
- matlab中如何区分两幅图的亮度_高中历史教学中利用老地图设计习题的尝试
- [转]C#遍历局域网的几种方法及比较
- java线程池深入讲解_死磕 java线程系列之线程池深入解析——生命周期
- MAC终端安装grunt--javascript世界得构建工具
- 一.因子图优化学习---董靖博士在深蓝学院的公开课学习(1)
- 微信为什么没有公众号导航
- Copula函数实战(Matlab)
- 威纶通屏幕(HMI)开发基本教程一:如何获得学习资料来源
- 微信开发者工具的使用
- 淘宝客怎么跟踪订单?
- Blender建模模块:超实用插件LoopTools
- 关系数据库——关系操作关系模型的完整性
- 做一个微信消息的日期展示
- 浪漫主义时期交响曲 聆听记录
- MATLAB中符号运算和数值运算的区别
- 电子计算机上面的mrc是什么意思,计算器中的M-键是什么功能?
- java就是我的幸福,我的幸福我的人生
- 5-20 电话聊天狂人
- 涂鸦智能设备接入homeassistant
- 【活动】想对大学的自己说……
热门文章
- cad 打开硬件加速卡_CAD:“你的图纸缺少shx字体!”不知道该怎么办?不存在的!...
- pr如何处理音效_在pr中怎么让声音变的好听?pr怎么让说话的声音更好听?
- swift 极光推送
- 西南科技大学OJ题 交换二叉树的孩子结点1105
- 科技爱好者周刊:第 91 期
- FreeRTOS学习记录(安富莱FreeRTOS教程摘录)
- WPF使用Prism框架
- MQTT 客户端工具介绍
- D3d/opengl texture yuv yuv420p nv12 yv12 等等 显示 以及传入shaderresource
- servlet原理+流程图+简单实现案例(javaweb)