-
获取英雄列表
https://pvp.qq.com/web201605/herolist.shtml
使用浏览器打开该网站,按F12进入开发者模式,点击network选项,刷新网页。可以发现一个包含了所有英雄名字的json文件,其中乱码是因为解码问题。
复制该链接并访问,可以得到如下文件:

-
点击页面中某一英雄,进入详情页:

可以看到艾琳的英雄id为155,在之前的json文件中搜索155:

-
进一步点击背景故事按钮,可以得到该英雄的背景故事。
所以可以得知,我们只需要知道英雄的ename属性,就可以得到该英雄的背景故事。 -
查看网页源代码可知,该故事直接在源代码中。

-
右键copy->copy selector,得到路径为#hero-story > div.pop-bd。
-
根据以上步骤,代码如下:
import json # 读取json文件
import requests # 爬虫
from bs4 import BeautifulSoup # 解析html,提取信息
class WzrySpider:
def __init__(self):
self.crawl_herolist()
# 读取英雄列表
def crawl_herolist(self):
try: # 如果json文件已经下载到本地,直接读取
reader = open("herolist.json","rb")
self.herolist_json = json.load(reader)
print("herolist.json读取成功!")
except: # 如果本地文件读取失败,去访问网页下载
herolist_url = "https://pvp.qq.com/web201605/js/herolist.json"
response = requests.get(herolist_url)
self.herolist_json = response.json()
# 提取json文件中英雄id和英雄名称
self.herolist = [(item["ename"],item["cname"]) for item in self.herolist_json]
def crawl(self):
# 构造单个英雄详情url
url = "https://pvp.qq.com/web201605/herodetail/%s.shtml"
# 循环访问每一个英雄详情页
for (ename,cname)

本文介绍了如何使用Python爬虫获取王者荣耀英雄的背景故事。通过分析网页结构,找到包含英雄名字的JSON文件,解析英雄ID,并定位到背景故事的HTML元素。获取故事后,通过制作词云对文本进行视觉呈现,展示了去除停用词前后的词云效果,以及如何定制词云背景图片。
最低0.47元/天 解锁文章

4655

被折叠的 条评论
为什么被折叠?



