tingx / 数据分析 / 玩点好玩的

0 0

   

玩点好玩的

2016-11-22  tingx

网站访问地址:http://59.110.49.40/。先看效果,下图是以“数据”为根的话题关系可视化。

网站访问地址:http://59.110.49.40/。这里建议使用电脑访问,手机访问时布局有问题。由于域名没有备案,先用ip进行访问吧。右上角有个搜索框,可以对自己喜欢的话题关系进行搜索。由于服务器配置不高,也为了更好的展示效果,不建议搜索过于顶层的话题。

比如搜索“周杰伦”:

比如搜索“Python”:

又比如搜索“苹果公司”(比较乱,可进行缩放和拖拽):

============================= 分割线 ================================

项目步骤:

(1)通过爬虫爬取知乎全部话题,包括topic_id,topic_name,topic_parentid等字段。除了未分类话题外,其余话题共有15万+。注意,一个topic的子topic和父topic都有多个。

(2)利用Flask + Bootstrap + echarts进行数据可视化。选取的是echarts中的关系图中的力引导图。官网地址:http://echarts.baidu.com/demo.html#graph-force

(3)在阿里云服务器上,利用Docker部署Flask服务。用到的是官方建议的uWSGI+Nginx。

在这三步中,第一步和第二步不详细写步骤了。本文主要记录下如何利用Docker在Centos系统下部署Flask服务。用到的工具是uWSGI+Nginx。关于Docker的基础知识,可查看专栏文章:一小时入门Docker。下边讲的步骤也比较粗略,主要讲几个关键的配置文件等,见谅!

(1)首先利用Centos镜像,新建一个容器myshow,这里这里需要开放80端口。

docker run -it --name myshow -p 80:80 centos:latest /bin/bash

(2)在容器中安装Python环境。由于用了Docker,这里不再使用虚拟环境,而是直接装进全局中。需要安装的第三方包有:Flask、Flask-Bootstrap、Flask-WTF、uWSGI、PyMySQL等。建议使用requirements.txt安装,比较简单。

(3)利用uWSGI启动自己的Flask程序,这里假设你的Flask程序已经经过测试了。

 uwsgi -s /tmp/uwsgi.sock -w MyShow:app --chmod-socket=666

这里的--chmod-socket=666,是将/tmp/uwsgi.sock的权限设置为666,防止因为权限问题而使得Nginx访问受限。

(4)安装Nginx,不同的系统有不同的安装办法,官网说明:nginx.install。安装完成之后,输入Nginx即可将服务打开。此时利用浏览器访问ip地址,即可看到Nginx的欢迎页面。修改Nginx配置文件,以链接uWSGI,配置文件地址:/etc/nginx/conf.d/default.conf:

server {
    listen       80;
    server_name  xxx.com;

    charset utf-8;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/tmp/uwsgi.sock;
    }

很简单。修改之后nginx -s reload即可使配置文件生效。这里需要说明,不建议修改默认的listen端口。因为如果你有一个域名,比如http://a.com,你想绑定到你的这个Flask服务,域名解析时只填写ip地址,端口默认映射到80端口。


下一步设想:再次利用爬虫爬取各个话题的关注人数,归一化后设置为图中点的大小,即关注人数越多的话题,圆圈越大。如果你有关于这方面好的想法,也可以在评论中提出来。


=============================================================


作者主页:笑虎(Python爱好者,关注爬虫、数据分析、数据挖掘、数据可视化等)

作者专栏主页:撸代码,学知识 - 知乎专栏

作者GitHub主页:撸代码,学知识 - GitHub

欢迎大家拍砖、提意见。相互交流,共同进步!

==============================================================

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。如发现有害或侵权内容,请点击这里 或 拨打24小时举报电话:4000070609 与我们联系。

    猜你喜欢

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多
    喜欢该文的人也喜欢 更多