wzry-spider

python通用爬虫-通用爬虫爬取静态网页,面向小白

基本上纯python语法切片索引,少用到第三方爬虫网络库

这是一只小巧方便,强大的爬虫,由python编写

主要实现了:

1.爬取高清皮肤大图

2.爬取所有英雄背景故事

所需的库有

    1. requests 只用来发送请求和保存二进制文件

纯python爬虫,利用python索引切片文件读写不依赖第三方网络爬虫库实现硬核爬虫

完整项目放在GitHub:https://github.com/Ymy214/meizitu-spider

具体实现思路:

    1. 分析网页源代码结构
    1. 找到合适的入口
    1. 穷举访问并解析
    1. 爬取所有英雄所有皮肤图片

代码思路/程序流程:

我分析王者荣耀网站上面的英雄资料库发现所有英雄的页面基本上都是连贯的,并且还是偏向与静态网页没有过多的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()

另外本人还有面下给小白的

    1. 反防盗链爬取妹子图
    1. 王者荣耀背景故事爬虫

欢迎学习支持

有用或帮到你的话不妨点个star我将感激不尽

python爬虫王者荣耀高清皮肤大图背景故事通用爬虫的更多相关文章

  1. python 爬取王者荣耀高清壁纸

    代码地址如下:http://www.demodashi.com/demo/13104.html 一.前言 打过王者的童鞋一般都会喜欢里边设计出来的英雄吧,特别想把王者荣耀的英雄的高清图片当成电脑桌面 ...

  2. Python爬虫——你们要的王者荣耀高清图

    曾经144区的王者 学了计算机后 头发逐渐从李白变成了达摩 秀发有何用,变秃亦变强 (emmm徒弟说李白比达摩强,变秃不一定变强) 前言 前几天开了农药的安装包,发现农药是.Net实现的游戏 虽然游戏 ...

  3. Python爬无止境,获得王者荣耀全部高清皮肤

    作为一名热爱王者两年的程序员,早就想爬取所有英雄皮肤的高清照片,在设个幻灯片放映,真香,这次只用16行代码就能实现,对于新手拿这个作为实战练手项目既简单又容易上手,快来尝试下. 百度"王者荣 ...

  4. python妹子图爬虫5千张高清大图突破防盗链福利5千张福利高清大图

    meizitu-spider python通用爬虫-绕过防盗链爬取妹子图 这是一只小巧方便,强大的爬虫,由python编写 所需的库有 requests BeautifulSoup os lxml 伪 ...

  5. 用Python爬取《王者荣耀》英雄皮肤数据并可视化分析,用图说话

    大家好,我是辰哥~ 今天辰哥带大家分析一波当前热门手游<王者荣耀>英雄皮肤,比如皮肤上线时间.皮肤类型(勇者:史诗:传说等).价格. 1.获取数据 数据来源于<王者荣耀官方网站> ...

  6. 参考分享《Python深度学习》高清中文版pdf+高清英文版pdf+源代码

    学习深度学习时,我想<Python深度学习>应该是大多数机器学习爱好者必读的书.书最大的优点是框架性,能提供一个"整体视角",在脑中建立一个完整的地图,知道哪些常用哪些 ...

  7. Python实现王者荣耀小助手(二)

    接下来我们获取英雄和武器信息,详细代码KingGlory.py如下(代码中有详细注解): # -*- coding: utf-8 -*- #!/usr/bin/env python # @Time : ...

  8. Python实现王者荣耀小助手(一)

    简单来说网络爬虫,是指抓取万维网信息的程序或者脚本,Python在网络爬虫有很大优势,今天我们用Python实现获取王者荣耀相关数据,做一个小助手: 前期准备,环境搭建: Python2.7 sys模 ...

  9. Nginx+uWSGI+Python+Django构建必应高清壁纸站

    写在前面 做这个网站的初衷是因为,每次打开必应搜索搜东西的时候都会被上面的背景图片吸引,我想必应的壁纸应该是经过专业人员精选出来的,我甚至会翻看以前的历史图片,唯一美中不足的是必应的首页只能查看最多7 ...

随机推荐

  1. Docker 搭建开源跳板机_jumpserver (运维开源堡垒机_jumpserver) Centos_7.0

    最近看到一个开源项目(jumpserver)  很不错  还是用Docker  部署得 ... 抽了点时间拿来学习一下  部署    分析   简单使用一下  ....好了先搭起来 准备 工作:    ...

  2. Android-寒假学习-阶段总结(20集)-口算测试APP

    说在前面: 1.视频教程:https://www.bilibili.com/video/av60445113/?spm_id_from=333.788.videocard.0 2.老师的源码:http ...

  3. redis qps监控

    最近有个客户反应redis的qps不准确,通过查看代码,发现我们的监控是调用的redis info里面的instantaneous_ops_per_sec 客户反应说自己压测了ns,但是从监控上看不到 ...

  4. 如何下载Github的工程到本地,完成修改并提交

    2019-02-22 对以下方法做了测试 可以生效 1 在Github上添加密钥 方法是:https://www.cnblogs.com/jason-beijing/p/9110187.html 2 ...

  5. [Mathematics][Fundamentals of Complex Analysis][Small Trick] The Trick on drawing the picture of sin(z), for z in Complex Plane

    Exercises 3.2 21. (a). For $\omega = sinz$, what is the image of the semi-infinite strip $S_1 = \{x+ ...

  6. Java学习笔记(一) 面向对象---封装

    面向对象---封装 封装是面向对象思想的三大特征之一. 理解: 隐藏对象的属性和实现细节,仅对外提供公共访问方式. 优点: 将变化隔离 便于使用 提升代码复用性 提高安全性 封装原则: 将不需要对外提 ...

  7. 短网址资料-nginx非root用户启动-systemctl启动脚本-分割root权限

    https://www.cnblogs.com/aspnethot/articles/3492191.htmlhttps://www.cnblogs.com/aspnethot/articles/34 ...

  8. POJ 2676:Sudoku 数独

    Sudoku Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 15830   Accepted: 7737   Special ...

  9. h5-任意元素居中

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 解决: java.io.IOException: 打开的文件过多 的问题

    问题 前一阵子公司项目做了一次压力测试, 中间出现了一个问题: 在50多个并发的时候会出现 java.io.IOException: 打开的文件过多 这个异常. 但是在没有并发的时候是不会出现这个问题 ...