Python爬取王者荣耀皮肤图片并生成词云图

本程序使用Python爬取王者荣耀官网的新版皮肤图片,并将数据保存到sqlite数据库和Excel表格中,最后生成皮肤名称的词云图。

主要任务:

  1. 加载需要用到的各种第三方库,如requests;BeautifulSoup4;lxml;sqlite3;jieba;;WordCloud;openpyxl等。
  2. 爬取王者荣耀官网的皮肤信息。
  3. 将信息保存到sqlite数据库表中或者Excel表中。
  4. 生成皮肤名称的词云图。

代码示例:

import requests
from bs4 import BeautifulSoup
import sqlite3
import openpyxl
from wordcloud import WordCloud
import jieba
import matplotlib.pyplot as plt

# 爬取新版王者荣耀皮肤图片
url = 'https://pvp.qq.com/web201605/herolist.shtml'
res = requests.get(url)
res.encoding = 'gbk'
soup = BeautifulSoup(res.text, 'html.parser')
skin_list = soup.select('.pic-pf-list > ul > li')

# 将信息保存到sqlite数据库表中
conn = sqlite3.connect('skin.db')

c = conn.cursor()

c.execute('''CREATE TABLE IF NOT EXISTS skins
             (id INTEGER PRIMARY KEY AUTOINCREMENT,
              name TEXT,
              hero TEXT,
              skin TEXT,
              pic_url TEXT)''')

for skin in skin_list:
    name = skin.select_one('.pic-pf-name').text
    hero = skin.select_one('.pic-pf-title').text
    skin_name = skin.select_one('.pic-pf-name span').text
    pic_url = skin.select_one('.pic-pf-img')['src']
    
    c.execute('INSERT INTO skins (name, hero, skin, pic_url) VALUES (?, ?, ?, ?)',
              (name, hero, skin_name, pic_url))

conn.commit()
conn.close()

# 将信息保存到Excel表中
wb = openpyxl.Workbook()
ws = wb.active

ws.append(['名称', '英雄', '皮肤', '图片链接'])

for skin in skin_list:
    name = skin.select_one('.pic-pf-name').text
    hero = skin.select_one('.pic-pf-title').text
    skin_name = skin.select_one('.pic-pf-name span').text
    pic_url = skin.select_one('.pic-pf-img')['src']
    
    ws.append([name, hero, skin_name, pic_url])

wb.save('skin.xlsx')

# 生成词云图
text = ''
for skin in skin_list:
    text += skin.select_one('.pic-pf-name span').text + ' '

words = ' '.join(jieba.cut(text))

wc = WordCloud(background_color='white')
wc.generate(words)

plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()

说明:

  1. 代码中使用了requests库获取网页内容,BeautifulSoup库解析网页结构,sqlite3库保存数据到数据库,openpyxl库保存数据到Excel表格,jieba库进行中文分词,WordCloud库生成词云图,matplotlib库显示词云图。
  2. 代码中需要修改url参数为需要爬取的网页地址。
  3. 代码中需要修改数据库名称和Excel表格名称。
  4. 代码中需要安装上述所有库,可以使用pip install命令进行安装。

运行结果:

运行代码后,将会生成一个名为skin.db的sqlite数据库文件,一个名为skin.xlsx的Excel表格文件,以及一个皮肤名称的词云图。

注意:

  1. 代码仅供学习参考,请勿用于任何商业用途。
  2. 爬取网站数据时,请尊重网站的robots协议,避免过度爬取导致网站服务器压力过大。
  3. 代码中使用了中文分词库jieba,需要确保已经安装该库。
  4. 代码中使用了matplotlib库显示词云图,需要确保已经安装该库。
Python爬取王者荣耀皮肤图片并生成词云图

原文地址: http://www.cveoy.top/t/topic/oQfI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录