前言 

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

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

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'

#姓名

findName = re.compile(r'(.*)')

#性别

findGender = 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()

二、数据可视化部分

1.前端框架

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

网址:Start Bootstrap

2.写入表格

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

序号

昵称

图片

性别

居住地

年龄

月薪

学历

婚况

身高

个人简介

序号

昵称

图片

性别

居住地

年龄

月薪

学历

婚况

身高

个人简介

{% for person in zhenai %}

{{ person[0] }}

{{ person[3] }}

查看图片

{{ person[4] }}

{{ person[5] }}

{{ person[6] }}

{{ person[7] }}

{{ person[8] }}

{{ person[9] }}

{{ person[10] }}

{{ person[11] }}

{% endfor %}

3.echarts图表实现可视化

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

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

(2)学历分布的代码

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

 

 

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: