上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

大数据作业:相亲数据的可视化分析(个人)

guduadmin11天前

前言 

个人大数据的期末大作业,用python按城市寻找爬取、分析和保存了珍爱网相亲的征婚信息,然后进行数据可视化分析。

一、数据的爬取,分析,清洗与保存

1.数据的爬取

网站来源如下

大数据作业:相亲数据的可视化分析(个人),第1张

def getDate(baseurl):
    datalist = []
    citylist = ['beijing/'
     ,'shanghai/','tianjin/','changchun/','shijiazhuang/','lanzhou/','xining/',
     'xian/','zhengzhou/','jinan/','taiyuan/','hefei/','changsha/','wuhan/','nanjing/','chengdu/','guiyang/','kunming/',
     'hangzhou/','nanchang/','guangzhou/','fuzhou/'
                ]
    for i in citylist:          
        url1 = baseurl + i
        for j in range(1,7):
             url = url1 + str(j)
             html = askURL(url)      

2.数据的分析

1.数据的清洗

分析数据中用到了正则表达式查找筛选指定字符串。但因为珍爱网的每一栏都是采用相同的标签和class,这样就不知道是在哪里结束。所以正则表达式后面加上下一栏标签内的文字,就能分清在哪里结束了。   图1

因为相亲男女的其他各栏属性都相同,但其中有一栏男士对应的是月薪,女士对应的是学历。所以可以分开处理。男士的学历和女士的月薪就标记为“未知”。   图2

#详情链接
findLink = re.compile(r'')
#图片的链接
findImgSrc = re.compile(r' 居住地:')
#居住地
findPlace = re.compile(r'居住地:(.*) 年龄:')
#年龄
findAge = re.compile(r'年龄:(\d*).*[月   薪:学   历:]')
#月薪
findWage = re.compile(r'月   薪:(.*) 婚况:')
#学历
findDip = re.compile(r'学   历:(.*)  婚况:')
#婚况
findKuang = re.compile(r'婚况:(.*) 身   高:')
#身高
findHeight = re.compile(r'身   高:(\d*)')
#信息
findDetails = re.compile(r'(.*?)',re.S)
wage = re.findall(findWage, item)
if len(wage) != 0:
      wage = wage[0]
      data.append(wage)
else:
      data.append("未知")
   diploma = re.findall(findDip, item)
   if len(diploma) != 0:
      diploma = diploma[0]
      data.append(diploma)
else:
      data.append("未知")

2.数据的保存

使用SQLite将数据保存入数据库中,得到结果

def saveData(datalist,dbpath):
    init_db(dbpath)
    conn = sqlite3.connect(dbpath)
    cur = conn.cursor()
 
    for data in datalist:
        for index in range(len(data)):
            if index == 5 or index == 9:
                continue
            data[index] = '"'+data[index]+'"'
        sql = '''
            insert into zhenaizhenghun (
            info_link,pic_link,name,gender,place,age,wage,diploma,hun,height,details)
            values (%s)'''%",".join(data)
        print(sql)
        cur.execute(sql)
        conn.commit()
    cur.close()
    conn.close()

大数据作业:相亲数据的可视化分析(个人),第2张

二、数据可视化部分

1.前端框架

前端框架采用的是Start Bootstrap上面的模板,下载好想要的模板直接使用就可以了。

网址:Start Bootstrap

2.写入表格

将数据库的数据写入前端界面中的表格中,代码以及结果如下

	
            {% for person in zhenai %}
            
            {% endfor %}
        
序号 昵称 图片 性别 居住地 年龄 月薪 学历 婚况 身高 个人简介
序号 昵称 图片 性别 居住地 年龄 月薪 学历 婚况 身高 个人简介
{{ person[0] }} { person[1] }}"> {{ person[3] }} { person[2] }}"> 查看图片 {{ person[4] }} {{ person[5] }} {{ person[6] }} {{ person[7] }} {{ person[8] }} {{ person[9] }} {{ person[10] }} {{ person[11] }}

大数据作业:相亲数据的可视化分析(个人),第3张

3.echarts图表实现可视化

复制JS代码,在echarts官网选用合适的图表,将数据库的数据写入。实现可视化。

(1)婚姻状况的可视化代码以及结果

大数据作业:相亲数据的可视化分析(个人),第4张

(2)学历分布的代码

  

(3)年龄分布的可视化代码以及结果

  

大数据作业:相亲数据的可视化分析(个人),第5张

 

 

网友评论

搜索
最新文章
热门文章
热门标签