目录

1 数据爬取

1.1 漫威人物关系图谱网站

1.2 爬取人物关系数据

2 Neo4j的安装及服务启动

2.1 Neo4j下载安装

2.2 开启Neo4j服务

3 数据准备

3.1 加入列名

3.2 放入本地Neo4j的import文件

4  数据可视化

4.1 加载"names_message.csv"文件

4.2 加载"relation_message.csv"文件

4.3 查看人物关系图谱

4.4 筛选人物关系


前言:

最近复联4大火,笔者看到 “法纳斯特” 的博客得到启示,于是想动手做一个可视化分析漫威人物关系的知识图谱,做一枚硬核漫威铁粉。

1 数据爬取

1.1 漫威人物关系图谱网站

1.网址传送门:

https://graphics.straitstimes.com/STI/STIMEDIA/Interactives/2018/04/marvel-cinematic-universe-whos-who-interactive/index.html

注:网站被墙,因此很多朋友反应网站打不开,但是用梯子是可以访问的。另,我会将爬下来的csv文件的 github 地址直接贴在下文中,需要的朋友自取哈。

2.网站介绍:网站是基于 Graph 技术开发的,主要是关于漫威人物、漫威电影的图谱。

3.网站一览

首页:

人物关系:

点击头像,可看到人物的详细信息:(钢铁侠!!

漫威宇宙系列电影:

1.2 爬取人物关系数据

注:浏览器推荐使用Google Chrome

1.打开F12调试,选择“Network”(注意是在首页):

2.关键词搜索(Ctrl + f),输入“marvel-data.json”:

3.进入“marvel-data.json”,复制json接口的URL:

在这里,我们主要需要爬取的数据是“characters”与“relationship”:

 4.python代码

跑代码之前需要先配置 python 环境,在这里笔者使用的 IDE 是 PyCharm,PyCharm 的安装见此处:Win10环境Python+Tensorflow+Jupyter入门安装详解,代码中的 url 即刚才在网站上复制的 json 接口

import json
import requestsheaders = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}url = 'https://graphics.straitstimes.com/STI/STIMEDIA/Interactives/2018/04/marvel-cinematic-universe-whos-who-interactive/data/marvel-data.json'
response = requests.get(url=url, headers=headers)
result = json.loads(response.text)num = 0
names = []
item = {0: 'friend', 1: 'enemy', 2: 'creation', 3: 'family', 4: 'work', 5: 'love'}for i in result['relationship']:subject = result['relationship'][i]['id']object = result['relationship'][i]['target_id']if subject not in names:names.append(subject)if object not in names:names.append(object)relation = int(result['relationship'][i]['relationship'])with open('relation_message.csv', 'a+') as f:f.write(subject + ',' + object + ',' + item[relation] + '\n')for j in names:num += 1with open('names_message.csv', 'a+') as f:f.write(j + ',' + str(num) + '\n')for k in result['characters']:id = result['characters'][k]['id']name = result['characters'][k]['name']status = result['characters'][k]['status']species = result['characters'][k]['species']with open('message.csv', 'a+') as f:f.write(id + ',' + name + ',' + status + ',' + species + '\n')

5.运行完毕后会产生三个csv文件

csv文件 github 地址:https://github.com/leungll/Marvel-File

至此,数据爬取部分已经完成。

2 Neo4j的安装及服务启动

2.1 Neo4j下载安装

1.进入官网下载:https://neo4j.com/download-center/#releases

若点击之后网站没有弹出下载提示,则点击此处下载:

2.解压安装包:

注意:切记安装路径不要含任何中文字符或空格(例如文件名为“Program Files”),否则远程服务器访问本地数据库时会乱码,导致无法读取数据

2.2 开启Neo4j服务

1.管理员身份打开Windows PowerShell:

2.启动:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Import-Module '(neo4j文件目录)\bin\Neo4j-Management.psd1'
Invoke-Neo4j console

3.访问服务器:

localhost:7474

 4.输入密码:

初始用户名:neo4j,初始密码:neo4j

5.之后服务器会要求你修改密码:

3 数据准备

生成的三个csv文件中,“names_message.csv”即角色,“relation_message.csv”即人物关系情况。

3.1 加入列名

1.在“names_message.csv”中

2.在“relation_message.csv”中

3.2 放入本地Neo4j的import文件

4  数据可视化

4.1 加载"names_message.csv"文件

LOAD CSV  WITH HEADERS FROM 'file:///names_message.csv' AS data CREATE (:people{name:data.name, id:data.id});

182个人物节点已生成。

4.2 加载"relation_message.csv"文件

LOAD CSV  WITH HEADERS FROM "file:///relation_message.csv" AS relations
MATCH (entity1:people{name:relations.subject}) , (entity2:people{name:relations.object})
CREATE (entity1)-[:rel{relation: relations.relation}]->(entity2)

1144对人物关系已建立完毕。

4.3 查看人物关系图谱

1.取消限制(去掉"LIMIT 25")

运行:

2.显示人物及关系

选择全屏:

替换人物名称:

替换人物关系:

4.4 筛选人物关系

1.托尼·斯达克的朋友:

match p=(n:people{name:"tonys"})-[:rel{relation:"friend"}]->() return p;

其中「thor」为「雷神」,「stever」为「美队」,「blackw」为「黑寡妇」,「vision」为「幻视」,「peterp」为「蜘蛛侠」,「bruceb」为「绿巨人」

2.美队的女友:

match p=(n:people{name:"stever"})-[:rel{relation:"love"}]->() return p;

其余的查询类似我们熟知的SQL语句,大家可以多多尝试。

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱相关推荐

  1. python大数据可视化分析淘宝商品,开专卖店不行啊

    python大数据可视化分析淘宝商品,开专卖店不行啊 现如今大数据分析异常火爆,如何正确分析数据,并且抓住数据特点,获得不为人知的秘密?今天沉默带你用python爬虫,爬取淘宝网站进行淘宝商品大数据分 ...

  2. 《Python机器学习与可视化分析实战》简介

    #好书推荐##好书奇遇季#<Python机器学习与可视化分析实战>,京东当当天猫都有发售.定价69元.Python机器学习与可视化入门书,配套示例源码.PPT课件.作者答疑. 本书带给你的 ...

  3. neo4j的使用(以红楼梦人物关系为例)

    参考:知识图谱实战:构建红楼梦知识图谱_任萌新的小生活-CSDN博客_知识图谱构建实战https://blog.csdn.net/RHJlife/article/details/108586578 先 ...

  4. 在图数据库Neo4j中创建红楼梦人物关系图谱

    在图数据库Neo4j中创建红楼梦人物关系图谱 1.加载csv数据文件 load csv from 'file:///triples.csv' as linecreate (:role {name:li ...

  5. Python图书数据可视化分析

    20220615 导师发布第一个任务---图书数据可视化分析 课件下载链接: https://pan.baidu.com/s/1RjRyk8ZTbxI1z5W7MZLTdQ?pwd=m6eq 提取码: ...

  6. 夺冠没含金量!用python和BI可视化分析,湖人赢在这点上

    在经历了很多很多之后,湖人队终于获得了总冠军,众望所归. 如果科比还在的话,一定也很自豪吧,毕竟上一次夺冠还是10年前. 那问题来了,为什么湖人能赢?比对手强在哪些地方? 口说无凭,我觉得只有数据能说 ...

  7. Python百度指数可视化分析实战案例1

    有时候很难客观公正的去评价某一件事情, 但是根据数据往往就很理性了, 所以如何从比较可靠的数据中分析出有用信息就很重要了, 比如说Python的百度指数分析: p1 p2 p3 ,可靠数据已经初现端倪 ...

  8. python对三国演义,水浒传,红楼梦人物关系与出场频率进行文本分析,数据可视化,词云分析

    python对文本进行分析和数据可视化,主要运用到了jieba,worldcloudmatplotlib,nxwworkx,pandas库,其他库在代码中给出. 1.首先准备好这三本名著 2.准备好停 ...

  9. 数据可视化分析之python论坛爬虫可视化分析

    背景介绍 随着数据可视化分析的流行,对python的论坛进行可视化分析可以有效帮助论坛进行引流,达到优化论坛资源,分析论坛走势的目的.该程序分为数据爬虫和数据分析两个部分.该设计为我本科比耶设计. 1 ...

最新文章

  1. 初学数据结构--链表
  2. 三星电子宣布已开始大规模量产5nm芯片,并正在研发4nm工艺
  3. matlab有限域多项式除法_MATLAB极小值优化
  4. 【渝粤题库】陕西师范大学400001 思想政治教育原理 作业(专升本)
  5. 怎么借助Camtasia制作回忆录
  6. 《机器学习实战》代码实现学习一 使用K-近邻算法改进约会网站的配对效果(数据准备)...
  7. 插槽样式_小程序,自定义组件之间的引用,使用插槽扩展组件
  8. Python游戏编程_植物大战讲僵尸_贪吃蛇
  9. 两款WiFi无线网络扫描工具软件 WirelessMon Xirrus WiFi Inspector
  10. 使用Vue开发Chrome插件
  11. usb口拒绝访问_电脑插上U盘显示无法访问 拒绝访问怎么回事
  12. 安装mysql_python
  13. c语言打印一个字母圣诞树,C语言打印圣诞树
  14. A2dele: Adaptive and Attentive Depth Distiller for Efficient RGB-D Salient Object Detection
  15. 淘宝产品详情页 上拉加载图片详情 效果实现
  16. C# 获取USB设备列表
  17. 线性代数考研笔记(二)
  18. 【附源码】计算机毕业设计java羽毛球场地管理系统设计与实现
  19. 2019, XII Samara Regional Intercollegiate Programming Contest 全部题解
  20. opendns_如何在Mac上使用OpenDNS或Google DNS

热门文章

  1. 常用知识总结(二) 之 电容谐振频率点和阻抗
  2. Hust oj 1938 火车快跑(栈)
  3. 代驾司机兼职跑腿,滴滴能否收获双倍快乐?
  4. weka连接mysql
  5. JS,BOM,DOM(六)
  6. Vue 前端对接第三方平台扫码登录(Oauth2)
  7. 2-9 彩虹瓶 (20 分)
  8. mysql跨年统计年前年后_十种MYSQL显错注入原理讲解(三)
  9. [今日记录]EFCore跟踪与非跟踪查询 AsNoTracking()
  10. 记录总结并分享下自己找工作的经历