Python 爬取王者荣耀皮肤图片:设计可运行代码
Python 爬取王者荣耀皮肤图片:设计可运行代码
本代码演示了如何使用 Python 编写一个窗体应用系统,爬取王者荣耀皮肤图片并保存到 SQLite 数据库和 Excel 表格中。
主要任务:
设计一个窗体应用系统,具有以下功能:
- 加载需要用到的各种第三方库,如
requests、BeautifulSoup4、lxml、sqlite3、jieba、WordCloud、openpyxl等。 - 爬取一个网站信息
- 将信息保存到 SQLite 数据库表中或者 Excel 表中
- 生成图表或显示处理后的信息内容
代码示例:
import requests
from bs4 import BeautifulSoup
import sqlite3
import openpyxl
# 爬取网站信息
def get_info():
url = 'https://pvp.qq.com/web201605/herolist.shtml'
r = requests.get(url)
r.encoding = r.apparent_encoding
soup = BeautifulSoup(r.text, 'lxml')
hero_list = soup.find_all('a', class_='herolist-nav__icon')
hero_info = []
for hero in hero_list:
name = hero.find('img')['alt']
skin_num = hero.find('span').text
skin_url = hero.find('img')['src']
hero_info.append((name, skin_num, skin_url))
return hero_info
# 保存到sqlite数据库表中
def save_to_sqlite(data):
conn = sqlite3.connect('hero.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS hero
(name TEXT, skin_num INTEGER, skin_url TEXT)''')
for d in data:
c.execute('INSERT INTO hero VALUES (?, ?, ?)', d)
conn.commit()
conn.close()
# 保存到Excel表中
def save_to_excel(data):
wb = openpyxl.Workbook()
ws = wb.active
ws.title = 'hero'
ws.cell(row=1, column=1, value='name')
ws.cell(row=1, column=2, value='skin_num')
ws.cell(row=1, column=3, value='skin_url')
for i, d in enumerate(data):
ws.cell(row=i+2, column=1, value=d[0])
ws.cell(row=i+2, column=2, value=d[1])
ws.cell(row=i+2, column=3, value=d[2])
wb.save('hero.xlsx')
# 主函数
if __name__ == '__main__':
data = get_info()
save_to_sqlite(data)
save_to_excel(data)
print('数据已保存到数据库和Excel表中')
代码解析:
- 导入库: 导入必要的库,如
requests用于网页请求,BeautifulSoup用于解析网页结构,sqlite3用于操作 SQLite 数据库,openpyxl用于操作 Excel 文件。 - 获取信息: 使用
requests库获取网站内容,并使用BeautifulSoup解析网页结构,提取英雄名称、皮肤数量和皮肤图片链接。 - 保存到数据库: 使用
sqlite3库创建数据库表并保存爬取的信息。 - 保存到 Excel: 使用
openpyxl库创建 Excel 文件并保存爬取的信息。
注意事项:
- 确保你已经安装了所有必要的库。
- 爬取网站信息时,请尊重网站的robots.txt协议。
- 在使用爬虫工具时,请遵守法律法规和道德规范。
希望这篇文章能帮助你了解如何使用 Python 爬取网站信息并保存到数据库和 Excel 表格中。
原文地址: http://www.cveoy.top/t/topic/oQgQ 著作权归作者所有。请勿转载和采集!