python 爬取王者英雄技能并保存

    科技2022-08-30  88

    from bs4 import BeautifulSoup import requests import re import chardet import xlwt # 向服务器发送请求 def urlConn(url): res = requests.get(url, headers={'User-Agent':"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"}) encoding = 'gbk' # 页面的编码形式 res.encoding = encoding return res # 获取每个英雄的技能 def getSkills(url): data = [] res = urlConn(url) soup = BeautifulSoup(res.text, 'html.parser') list = soup.find_all(class_='skill-name') for each in list: # 判断是否为空,如果为空则不录入 if each.find('b').get_text() != '': data.append(each.find('b').get_text()) return data # 将数据存到Excel中 def saveToExcel(data, skills, fileName): wb = xlwt.Workbook() sheet = wb.add_sheet('王者英雄') sheet.write(0,0,'链接') sheet.write(0,1,'名称') sheet.write(0,2,'技能名称') for index,value in enumerate(data): sheet.write(index+1,0,value[0]) sheet.write(index+1,1,a+value[1]) sheet.write(index+1,2,skills[index]) wb.save(fileName) print('保存成功') url = 'https://pvp.qq.com/web201605/herolist.shtml' res = urlConn(url) # 获取英雄链接和名字 reg = re.compile('<li><a href="(.*?)" target="_blank"><img\r\n.*?src=".*?" width="91"\r\n.*?height="91" alt="(.*?)">') data = re.findall(reg, res.text) a = 'https://pvp.qq.com/web201605/' skills = [] for each in data: skills.append(str(getSkills(a+each[0]))) saveToExcel(data, skills, '王者英雄信息.xls')
    Processed: 0.010, SQL: 9