python爬虫实战:爬取王者荣耀英雄背景故事

本文介绍了如何使用Python爬虫获取王者荣耀英雄的背景故事。通过分析网页结构,找到包含英雄名字的JSON文件,解析英雄ID,并定位到背景故事的HTML元素。获取故事后,通过制作词云对文本进行视觉呈现,展示了去除停用词前后的词云效果,以及如何定制词云背景图片。
摘要由CSDN通过智能技术生成
  1. 获取英雄列表
    https://pvp.qq.com/web201605/herolist.shtml
    使用浏览器打开该网站,按F12进入开发者模式,点击network选项,刷新网页。可以发现一个包含了所有英雄名字的json文件,其中乱码是因为解码问题。
    在这里插入图片描述复制该链接并访问,可以得到如下文件:
    在这里插入图片描述

  2. 点击页面中某一英雄,进入详情页:
    在这里插入图片描述
    可以看到艾琳的英雄id为155,在之前的json文件中搜索155:
    在这里插入图片描述

  3. 进一步点击背景故事按钮,可以得到该英雄的背景故事。
    所以可以得知,我们只需要知道英雄的ename属性,就可以得到该英雄的背景故事。

  4. 查看网页源代码可知,该故事直接在源代码中。
    在这里插入图片描述

  5. 右键copy->copy selector,得到路径为#hero-story > div.pop-bd。

  6. 根据以上步骤,代码如下:

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) 
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D_ry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值