python爬虫王者荣耀高清皮肤大图背景故事通用爬虫
wzry-spider
python通用爬虫-通用爬虫爬取静态网页,面向小白
基本上纯python语法切片索引,少用到第三方爬虫网络库
这是一只小巧方便,强大的爬虫,由python编写
主要实现了:
1.爬取高清皮肤大图
2.爬取所有英雄背景故事
所需的库有
- requests 只用来发送请求和保存二进制文件
纯python爬虫,利用python索引切片文件读写不依赖第三方网络爬虫库实现硬核爬虫
完整项目放在GitHub:https://github.com/Ymy214/meizitu-spider
具体实现思路:
- 分析网页源代码结构
- 找到合适的入口
- 穷举访问并解析
- 爬取所有英雄所有皮肤图片
代码思路/程序流程:
我分析王者荣耀网站上面的英雄资料库发现所有英雄的页面基本上都是连贯的,并且还是偏向与静态网页没有过多的JavaScript渲染,所以比较适合来一波穷举遍历爬虫,但是速度也很快。利用python语法字符串操作,列表操作,字典操作等等循环遍历英雄页面利用python列表切片索引和字符串拼接等等方法来解析HTML得到皮肤图片链接和背景故事文本,将皮肤图片二进制文件保存为png高清大图,将所有英雄背景故事合并保存为文本文档
下面是功能以及效果展示
整体展示

爬取效果展示-丰功伟绩

爬取效果展示-硕果累累

背景故事

所有图片链接写入文本文件

代码展示
王者荣耀【皮肤高清大图爬虫】源代码如下
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import requests
fo = open('./wzry-jpg/wzry-pf.txt', 'w')
path = './wzry-jpg/'
ls = []
for i in range(105,200):
url = "http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{0}/{0}-bigskin-1.jpg".format(i)
status_code = requests.request('get', url).status_code
if status_code != 200:
continue
for j in range(1, 9):
imgurl = url[:-5] + '{}.jpg'.format(j)
response = requests.request('get', imgurl)
if response.status_code != 200:
continue
ls.append(imgurl)
##下载
print("开始下载第{}-{}个英雄皮肤图片>>>".format(i,j), end='')
with open(path+str(i)+'-'+str(j)+'.png', 'wb') as f:
f.write(response.content)
print('======下载完成======')
for i in range(501,516):
url = "http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{0}/{0}-bigskin-1.jpg".format(i)
status_code = requests.request('get', url).status_code
if status_code != 200:
continue
for j in range(1, 9):
imgurl = url[:-5] + '{}.jpg'.format(j)
response = requests.request('get', imgurl)
if response.status_code != 200:
continue
ls.append(imgurl)
##下载
print("开始下载第{}-{}个英雄皮肤图片>>>".format(i,j), end='')
with open(path+str(i)+'-'+str(j)+'.png', 'wb') as f:
f.write(response.content)
print('======下载完成======')
##print(ls)
##连接写入txt文件
for line in ls:
fo.write(line+'\n')
fo.close()
王者荣耀【英雄背景故事爬虫】源代码如下
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import requests
fo = open('R:/python123全国等考/wzry-jpg/pop-bd.txt', 'w')
ls = []
for i in range(105,200):
url = "https://pvp.qq.com/web201605/herodetail/{}.shtml".format(i)
r = requests.request('get', url)
if r.status_code != 200:
continue
r.encoding = 'gbk'
name = r.text.split('cname')[1].split(',')[0].split("'")[1]
text = r.text.split('pop-bd')[1].split('p>')[1][:-2]
print("开始保存第{}个英雄背景故事>>>".format(i))
fo.write('【'+name+'】'+'\n'+text+'\n'+'-'*30)
for i in range(501,516):
url = "https://pvp.qq.com/web201605/herodetail/{}.shtml".format(i)
r = requests.request('get', url)
if r.status_code != 200:
continue
r.encoding = 'gbk'
name = r.text.split('cname')[1].split(',')[0].split("'")[1]
text = r.text.split('pop-bd')[1].split('p>')[1][:-2]
print("开始保存第{}个英雄背景故事>>>".format(i))
fo.write('【'+name+'】'+'\n'+text+'\n'+'-'*30)
##连接写入txt文件
fo.close()
另外本人还有面下给小白的
- 反防盗链爬取妹子图
- 王者荣耀背景故事爬虫
欢迎学习支持
有用或帮到你的话不妨点个star我将感激不尽
python爬虫王者荣耀高清皮肤大图背景故事通用爬虫的更多相关文章
- python 爬取王者荣耀高清壁纸
代码地址如下:http://www.demodashi.com/demo/13104.html 一.前言 打过王者的童鞋一般都会喜欢里边设计出来的英雄吧,特别想把王者荣耀的英雄的高清图片当成电脑桌面 ...
- Python爬虫——你们要的王者荣耀高清图
曾经144区的王者 学了计算机后 头发逐渐从李白变成了达摩 秀发有何用,变秃亦变强 (emmm徒弟说李白比达摩强,变秃不一定变强) 前言 前几天开了农药的安装包,发现农药是.Net实现的游戏 虽然游戏 ...
- Python爬无止境,获得王者荣耀全部高清皮肤
作为一名热爱王者两年的程序员,早就想爬取所有英雄皮肤的高清照片,在设个幻灯片放映,真香,这次只用16行代码就能实现,对于新手拿这个作为实战练手项目既简单又容易上手,快来尝试下. 百度"王者荣 ...
- python妹子图爬虫5千张高清大图突破防盗链福利5千张福利高清大图
meizitu-spider python通用爬虫-绕过防盗链爬取妹子图 这是一只小巧方便,强大的爬虫,由python编写 所需的库有 requests BeautifulSoup os lxml 伪 ...
- 用Python爬取《王者荣耀》英雄皮肤数据并可视化分析,用图说话
大家好,我是辰哥~ 今天辰哥带大家分析一波当前热门手游<王者荣耀>英雄皮肤,比如皮肤上线时间.皮肤类型(勇者:史诗:传说等).价格. 1.获取数据 数据来源于<王者荣耀官方网站> ...
- 参考分享《Python深度学习》高清中文版pdf+高清英文版pdf+源代码
学习深度学习时,我想<Python深度学习>应该是大多数机器学习爱好者必读的书.书最大的优点是框架性,能提供一个"整体视角",在脑中建立一个完整的地图,知道哪些常用哪些 ...
- Python实现王者荣耀小助手(二)
接下来我们获取英雄和武器信息,详细代码KingGlory.py如下(代码中有详细注解): # -*- coding: utf-8 -*- #!/usr/bin/env python # @Time : ...
- Python实现王者荣耀小助手(一)
简单来说网络爬虫,是指抓取万维网信息的程序或者脚本,Python在网络爬虫有很大优势,今天我们用Python实现获取王者荣耀相关数据,做一个小助手: 前期准备,环境搭建: Python2.7 sys模 ...
- Nginx+uWSGI+Python+Django构建必应高清壁纸站
写在前面 做这个网站的初衷是因为,每次打开必应搜索搜东西的时候都会被上面的背景图片吸引,我想必应的壁纸应该是经过专业人员精选出来的,我甚至会翻看以前的历史图片,唯一美中不足的是必应的首页只能查看最多7 ...
随机推荐
- java 学生信息管理
题目: 一.测试要求: 1.按照测试内容要求完成程序的设计与编程: 2.将最终结果的源文件(.java)文件上传到以班级为单位,保存源程序. 3.建立学号姓名文件夹,如: ...
- UVA - 11584 Partitioning by Palindromes(划分成回文串)(dp)
题意:输入一个由小写字母组成的字符串,你的任务是把它划分成尽量少的回文串,字符串长度不超过1000. 分析: 1.dp[i]为字符0~i划分成的最小回文串的个数. 2.dp[j] = Min(dp[j ...
- 从华硕裁员、分拆业务看传统PC企业转型到底有多难?
近段时间,华硕的处境可谓"冰火两重天".一方面,华硕正式发布ROG游戏手机.这款手机以超强性能和华丽外观,让游戏玩家群体为之沸腾.即使最高售价高达12999元,还是有不少玩家趋之若 ...
- foreach —(遍历数组或循环中的字符,以获取信息)
namespace ConsoleApplication2{ class Program {//letter 字母 gigit 数字 symbol 符号 static void Main(string ...
- 使用Docker构建基于centos7镜像的python环境
Dcokerfile配置信息 ############################################## # 基于centos7构建python3运行环境 # 构建命令: 在Dock ...
- vue中的axios请求
1.get请求 // get this.$axios.get('请求路径') .then(function (response) { console.log(response); // 成功 }) . ...
- 备份 分区表 mbr
备份方法: 1.备份分区表信息 sudo fdisk -l >hda.txt #分区表信息重定向输出到文件中 2.备份MBR linux@linux-desktop:~/ex$ sudo ...
- cos改ip
IPADDRIP地址NETMASK子网掩码GATEWAY网关地址 通常,如果我们想更改主机地址为静态地址或者更改主机名,需要修改的几个文件包括:/etc/sysconfig/network Cento ...
- k8s pod.yml解释
apiVersion: v1kind: Podmetadata: name: yueying namespace: kube-public labels: name: testpodssp ...
- GBDT入门
GBDT(MART)迭代决策树入门教程 GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree) ...