[python爬虫]爬取英雄联盟所有英雄数据并下载所有英雄皮肤

本文介绍了使用Python爬虫抓取英雄联盟英雄数据,包括英雄名称,并将其保存为Excel格式。同时,程序还下载了所有英雄的皮肤图片,每个英雄的皮肤存放在独立的文件夹中。解析数据时遇到bytes类型问题,通过剔除无效数据并转换为16进制解决。完整代码待审核后分享。
摘要由CSDN通过智能技术生成

爬取英雄联盟所有英雄数据并下载所有英雄皮肤


第一次在CSDN上写博客,望大家多多关照。
代码部分主要分为四大块
“”"
这是要用到的库。

from bs4 import BeautifulSoup		# 网页解析,获取数据
import re		# 正则表达式,进行文字匹配
import urllib.request
import urllib.error		# 指定URL,获取网络数据
import xlwt		# 进行excel操作
import sqlite3		# 进行SQLite数据库操作
import json		# json类型解码
import requests
import os

1.爬取网页

def ask_url(url):
	"""
	访问URL
	:return:data
	"""
	# 伪装chrome的请求头
	header = {
   
		"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
	}
	req = urllib.request.Request(url=url, headers=header)
	html = ""
	try:
		response = urllib.request.urlopen(req)
		html = response.read().decode()
	except urllib.error.URLError as e:
		if hasattr(e, "code"):
			print(e.code)
		if hasattr(e, "reason"):
			print(e.reason)
	return html

2.解析数据

刚开始在用正则表达式匹配的英雄的中文名,打印出来的始终是一串bytes类型数据,不能直接显示中文,后来发现匹配到的bytes数据前有一个空数据,打印不显示出来。现在暂时想到的只是将第一个数据剔除,然后剩下的转成16进制,一个个去chr()它。如果有更好的想法,欢迎留言评论。

# 正则表达式匹配查找所有英雄id
find_hero_id = re.compile(r'{"heroId":"(\d*)",')		# 英雄id
find_name = re.compile(r'"name":"(.*)","alias')			# 英雄名字
find_title = re.
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值