云顶之奕是基于英雄联盟的一个回合制策略游戏模式每局比赛由八名玩家共同进行一对一决斗,直到场上只剩下最后一名玩家。获胜关键是在合理的战术策略下从随机化的英雄池中选择最佳的英雄阵容,用装备对阵容进行强化,并构架优势对战阵型。主要依靠棋子的属性(职业,元素)羁绊与装备的适配性和棋子的星级能力还有站位之间的相互作用
每个英雄都分别至少拥有一个职业与一个元素
以英雄、职业、元素为节点分别构建三者之间的关系网络。
import requests
from bs4 import BeautifulSoup
def getSoup(url):
response=requests.get(url)
response.encoding=response.apparent_encoding
html=response.text
soup=BeautifulSoup(html,'html.parser')
return soup
url='https://gl.ali213.net/html/2019-7/347457_2.html'
main='https://gl.ali213.net/html/2019-7/347457_'
for i in range(2,44):
urls='{}{}.html'.format(main,i)
soup=getSoup(urls)
s=soup.find_all('strong')
q=soup.find_all('b')
t=soup.find_all('p')
print(s[0].text,q,t[2].text)
load csv with headers from 'file:///Neo4j3.csv' as line
merge (element:元素{name:line.element})
merge (prefession:职业{name:line.prefession})
merge(hero:英雄
{name:line.name,money:line.money,tech:line.tech,attr:line.attr,sh:line.sh,sm:line.sm,hj:line.hj,mk:line.mk,wg:line.wg,gs:line.gs,bjl:line.bjl,gjjl:line.gjjl,csflz:line.csflz,fl:line.fl}
)
//merge(tech:技能{name:line.tech})
merge(zyxg:职业效果{name:line.zyxg})
merge(ysxg:元素效果{name:line.ysxg})
create (hero)-[:属于]->(element)
create (hero)-[:属于]->(prefession)
create (element)-[:拥有]->(ysxg)
create (prefession)-[:拥有]->(zyxg)
//create (hero)-[:拥有]->(tech)
return*
match (p:职业)-[r]-(q:英雄) with p,q,tail(collect(r)) as rr where size(rr)>0 foreach (r in rr|delete r)
match (p:职业)-[r]-(q:职业效果) with p,q,tail(collect(r)) as rr where size(rr)>0 foreach (r in rr|delete r)//删除重复冗余的关系
match (p:元素)-[r]-(q:元素效果) with p,q,tail(collect(r)) as rr where size(rr)>0 foreach (r in rr|delete r)
查询部分代码
//查询属于多个元素/职业的英雄
//刺客阵容英雄
//查询伤害元素的英雄
//1费用伤害效果英雄
//前期过渡阵容
//前期过渡阵容
前期最佳阵容 森林-德鲁伊
2度关系查询
任意两英雄最短路径查询
图谱构建
任意两英雄最短路径查询
查询拥有相同效果的英雄与装备
1.通过查询语句分析
出多套阵容体系
2.将装备与英雄
特性组合适配
3.元素职业在不同人
口时期德强度分析
小编从未玩过这个游戏,只是通过数据进行了图谱分析。
有很多不足之处还请各位大佬见谅
很多内容也是询问了一下玩过这款游戏的人,对于小编这种小白来说做到这样已经满足了。
至于不少分析代码,还有原始数据,分析报告ppt小编会整理成压缩包后期发到上面。