Python爬虫
项目环境
1.运行平台:Windows
2.Python版本:Python3.6
3.IDE:Sublime Text3
项目知识点
1.python爬虫的基本知识
2.一些可视化工具的使用(pyecharts)
3.python图片工具PIL库的使用
4.自然语言处理工具包结巴分词的使用
5.微信网页api工具itchat的使用
项目的功能
1.统计好友的性别,并在扇形图中表示
2.统计好友的昵称,并做成词云显示
3.统计好友个性签名中的高频词汇,并做成词云显示
4.统计好友的地域分布,并且可视化在地图上展示
5.微信自动回复消息功能(图灵机器人)
功能展示
01统计好友性别
以上就是我的微信好友啦,一共有229人,其中男性占据60%多,女性占据36%左右,其他这类人表示的是未填写性别信息的好友。
代码实现
#统计性别饼状图
def get_pie(item_name,item_name_list,item_num_list):
#计算好友总数
totle = item_num_list[0]+item_num_list[1]+item_num_list[2]
subtitle = "共有:%d个好友"%totle
#构造实例
pie = Pie(item_name,page_title = item_name,title_text_size=30,title_pos='center',\
subtitle = subtitle,subtitle_text_size = 25,width=800,height= 800)
#添加数据
pie.add("", item_name_list, item_num_list,is_label_show=True,center=[50, 45],radius=[0,50],\
legend_pos ='left',legend_orient='vertical',label_text_size=20)
#文件输出地址与文件名
out_file_name = './analyse/'+item_name+'.html'
#生成HTML文件
pie.render(out_file_name)
02统计好友地域分布
微信好友都集中在广东地区,因为本人在广东生活,在广东上上大学中,所有这里的统计数据就不怎么好。
代码实现
#统计地域分布条形图
def get_bar(item_name,item_name_list,item_num_list):
#构造实例
bar = Bar(item_name,page_title = item_name,title_text_size=30,title_pos='center')
#添加数据
bar.add("", item_name_list, item_num_list,title_pos='center', xaxis_interval=0,xaxis_rotate=27,\
xaxis_label_textsize = 20,yaxis_label_textsize = 20,yaxis_name_pos='end',yaxis_pos = "%50")
bar.show_config()
grid = Grid(width=1300,height= 800)
grid.add(bar,grid_top = "13%",grid_bottom = "23%",grid_left = "15%",grid_right = "15%")
#文件输出地址与文件名
out_file_name = './analyse/'+item_name+'.html'
#生成HTML文件
grid.render(out_file_name)
03好友地域分布可视化
![](https://i-blog.csdnimg.cn/blog_migrate/6fa1e25323d5fbc1089adde363baa8e3.png)
这里我也有点无奈,基本所有好友都在广东,所有这里的可视化并不怎么明显。如果大家有兴趣,可以试试可视化在一个省区,这样看到是好友分布在各个市区,效果可能好一点。
代码实现
#地图可视化
def get_map(item_name,item_name_list,item_num_list):
#构造实例
_map = Map(item_name,width=1300,height= 800,title_pos='center',title_text_size=30)
#添加数据
_map.add("", item_name_list, item_num_list, maptype='china', is_visualmap=True, visual_text_color='#000')
#文件输出地址与文件名
out_file_name = './analyse/'+item_name+'.html'
#生成HTML文件
_map.render(out_file_name)