一、主题式网络爬虫设计方案(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爬取人口数据_爬取人口数据相关推荐

  1. python爬取客流数据_爬取首都机场客流量数据,从GIS的角度尝试分析建设大兴机场的必要性...

    Hello, 大家好!我是James. 上一节我们整理好了北京的行政区和街道办矢量数据,估计跃跃欲试的小伙伴太热情,爬取的网站被玩坏了几天,学习可以,但是不要过多尝试了哈 然后在文章的最后,我们惊奇的 ...

  2. python爬虫爬取今日头条_爬取今日头条头条号文章数据

    0,背景介绍 最近想爬取一些今日头条的文章浏览数据,分析哪些头条号做的好,那些做的不好. 今日头条 比如上图的阅读数,评论数以及文章标题,通过这些数据进行分析. 于是展开了艰难的爬虫探索之旅 第一目标 ...

  3. python爬取文献代码_爬取Pubmed文献及影响因子并尝试下载的脚本

    Abstract 本脚本实现了通过Biopython爬取pubmed文献资料,并通过scholarscope爬取影响因子数据,最后尝试通过sci-hub下载文献,三位一体的方法. Introducti ...

  4. java爬取彩票数据_爬取彩票信息(有空试下)

    暂且不说,彩票预测是否靠谱?彩票预测也分人而异,江湖上骗术很多,有些甚至会误以为彩票预测的准确度可以很高,这些操盘手法,让不知原理的彩民心甘情愿地掏钱买料. 在彩票预测上,也有正儿八经去研究" ...

  5. python电商项目介绍_电商大数据项目-推荐系统实战(一)

    本项目是基于Spark MLLib的大数据电商推荐系统项目,使用了scala语言和java语言.基于python语言的推荐系统项目会另外写一篇博客.在阅读本博客以前,需要有以下基础: 1.linux的 ...

  6. python创建类统计属性_轻松创建统计数据的Python包

    python创建类统计属性 介绍 (Introduction) Sometimes you may need a distribution figure for your slide or class ...

  7. 人口流向数据_中国各地人口净流入流出示意图

    中国各地人口净流入流出示意图,每个县的常住人口除以当地户籍人口减去100%,采用2010年的数据.数据来源是很简单的:显示中国每一个县区的人口净流入流出(红色为流入,蓝色为流出,深色为流入流出率高,淡 ...

  8. mysql查询两个表中的不同数据_如何实现大数据在多工作表中精准查询

    大家好,今日继续讲解VBA数据库解决方案,今日讲解第40讲:利用ADO实现同一文件的多个工作表精确查询.其实这讲的内容利用我之前讲解的知识点也可以自己完成.这里只是拿出来让大家再熟悉一下EXCEL的A ...

  9. 数据透视表怎么刷新数据_数据模型的Excel数据透视表刷新错误

    数据透视表怎么刷新数据 A simple data change can cause a strange pivot table refresh error, if you added the dat ...

  10. udacity开源的数据_评论:Udacity数据分析师纳米学位计划

    udacity开源的数据 by David Venturi 大卫·文图里(David Venturi) 评论:Udacity数据分析师纳米学位计划 (Review: Udacity Data Anal ...

最新文章

  1. matlab中如何区分两幅图的亮度_高中历史教学中利用老地图设计习题的尝试
  2. [转]C#遍历局域网的几种方法及比较
  3. java线程池深入讲解_死磕 java线程系列之线程池深入解析——生命周期
  4. MAC终端安装grunt--javascript世界得构建工具
  5. 一.因子图优化学习---董靖博士在深蓝学院的公开课学习(1)
  6. 微信为什么没有公众号导航
  7. Copula函数实战(Matlab)
  8. 威纶通屏幕(HMI)开发基本教程一:如何获得学习资料来源
  9. 微信开发者工具的使用
  10. 淘宝客怎么跟踪订单?
  11. Blender建模模块:超实用插件LoopTools
  12. 关系数据库——关系操作关系模型的完整性
  13. 做一个微信消息的日期展示
  14. 浪漫主义时期交响曲 聆听记录
  15. MATLAB中符号运算和数值运算的区别
  16. 电子计算机上面的mrc是什么意思,计算器中的M-键是什么功能?
  17. java就是我的幸福,我的幸福我的人生
  18. 5-20 电话聊天狂人
  19. 涂鸦智能设备接入homeassistant
  20. 【活动】想对大学的自己说……

热门文章

  1. cad 打开硬件加速卡_CAD:“你的图纸缺少shx字体!”不知道该怎么办?不存在的!...
  2. pr如何处理音效_在pr中怎么让声音变的好听?pr怎么让说话的声音更好听?
  3. swift 极光推送
  4. 西南科技大学OJ题 交换二叉树的孩子结点1105
  5. 科技爱好者周刊:第 91 期
  6. FreeRTOS学习记录(安富莱FreeRTOS教程摘录)
  7. WPF使用Prism框架
  8. MQTT 客户端工具介绍
  9. D3d/opengl texture yuv yuv420p nv12 yv12 等等 显示 以及传入shaderresource
  10. servlet原理+流程图+简单实现案例(javaweb)