【一、项目背景】

王者荣耀作为当下最火的游戏之一,里面的人物信息更是惟妙惟肖,但受到官网的限制,想下载一张高清的图片很难。(图片有版权)。

以彼岸桌面这个网站为例,爬取王者荣耀图片的信息。

【二、项目目标】

实现将获取到的图片批量下载。

【三、涉及的库和网站】

1、网址如下:

http://www.netbian.com/s/wangzherongyao/index.htm/

2、涉及的库:requests、lxml

【四、项目分析】

首先需要解决如何对下一页的网址进行请求的问题。可以点击下一页的按钮,观察到网站的变化分别如下所示:

http://www.netbian.com/s/wangzherongyao/index_2.htm
http://www.netbian.com/s/wangzherongyao/index_3.htm
http://www.netbian.com/s/wangzherongyao/index_4.htm

观察到只有index_()变化,变化的部分用{}代替,再用for循环遍历这网址,实现多个网址请求。

http://www.netbian.com/s/wangzherongyao/index_{}.htm

【五、项目实施】

1、我们定义一个class类继承object,然后定义init方法继承self,再定义一个主函数main继承self。准备url地址和请求头headers。

import requests
from lxml import etree
import time
class ImageSpider(object):def __init__(self):self.firsr_url = "http://www.netbian.com/s/wangzherongyao/index.htm"self.url = "http://www.netbian.com/s/wangzherongyao/index_{}.htm"self.headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"}def main(self):pass
if __name__ == '__main__':spider= ImageSpider()spider.main()

2、对网站发生请求。

'''发送请求  获取响应'''def get_page(self, url):res = requests.get(url=url, headers=self.headers)html = res.content.decode("gbk") #网络编码return html  #返回值

3、对请求到的数据进行处理

 '''解析数据'''
def parse_page(self, html):parse_html = etree.HTML(html)image_src_list = parse_html.xpath('//div[@class="list"]/ul/li/a//@href')for image_src in image_src_list:fa = "http://www.netbian.com" + image_src# print(fa)

4、在谷歌浏览器上,右键选择开发者工具或者按F12。

5、右键检查,找到图片二级的页面的链接,如下图所示。

6、对二级页面发生请求,for遍历得到的网址。

 bimg_url = parse_html1.xpath('//div[@class="pic-down"]/a/@href')for i in bimg_url:diet = "http://www.netbian.com" + i# print(diet)html2 = self.get_page(diet)parse_html2 = etree.HTML(html2)# print(parse_html2)url2 =                    parse_html2.xpath('//table[@id="endimg"]//tr//td//a/img/@src')

7、将获取的图片写入文档,获取图片的title值作为图片的命名。

 filename = parse_html2.xpath('//table[@id="endimg"]//tr//td//a/@title')for e in filename:# print(e)dirname = "./王者荣耀/" + e + '.jpg'html2 = requests.get(url=r, headers=self.headers).content# print(html2)print(dirname)with open(dirname, 'wb') as f:f.write(html2)print("%s下载成功" % filename)

8、在main方法调用,如下所示。因为第一页的网址是没有规律的,所以这里先判断一下是不是第一页。

def main(self):startPage = int(input("起始页:"))endPage = int(input("终止页:"))for page in range(startPage, endPage + 1):if page == 1:url = self.firsr_urlelse:url = self.url.format(page)# print(url)html = self.get_page(url)print("第%s页爬取成功!!!!" % page)# print(html)self.parse_page(html)

【六、效果展示】

1、运行程序,在控制台输入你要爬取的页数,如下图所示。

2、将下载成功的图片信息显示在控制台,如下图所示。

3、在本地可以看到效果图,如下图所示。

【七、总结】

1、不建议抓取太多数据,容易对服务器造成负载,浅尝辄止即可。

2、希望通过这个项目,能够帮助大家下载高清的图片。

3、本文基于Python网络爬虫,利用爬虫库,实现王者荣耀图片的抓取。实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

4、英雄有很多,大家自行选择你喜欢的英雄做为你的桌面的壁纸吧。

5、欢迎大家点赞,留言,转发,感谢大家的相伴与支持,想要了解更多Python知识以及想学好Python可以关注公众号:【Python的进阶之旅】需要本文源码的小伙伴,后台回复“资料”可获取。

看完就学会系列,小小一篇文章教会你利用Python网络爬虫抓取王者荣耀图片(建议收藏)相关推荐

  1. 利用python从网络上爬取图片_一篇文章教会你利用Python网络爬虫抓取王者荣耀图片...

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 王者荣耀作为当下最火的游戏之一,里面的人物信息更是惟妙惟肖,但受到 ...

  2. 一篇文章教会你利用Python网络爬虫获取素材图片

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 在素材网想找到合适图片需要一页一页往下翻,现在学会python就可 ...

  3. python网络爬虫_一篇文章教会你利用Python网络爬虫获取穷游攻略

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 穷游网提供原创实用的出境游旅行指南.攻略,旅行社区和问答交流平台, ...

  4. 一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接

    [一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天小编以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来 ...

  5. 一篇文章教会你利用Python网络爬虫实现豆瓣电影采集

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 豆瓣电影提供最新的电影介绍及评论包括上映影片的影讯查询及购票服务. ...

  6. 一篇文章教会你利用Python网络爬虫获取分类图片

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 博海拾贝是一支互联网从业者在线教育的团队,扎根于中国教育行业以及互 ...

  7. 如何用python搜索要用的素材_一篇文章教会你利用Python网络爬虫获取素材图片

    [一.项目背景] 在素材网想找到合适图片需要一页一页往下翻,现在学会python就可以用程序把所有图片保存下来,慢慢挑选合适的图片. [二.项目目标] 1.根据给定的网址获取网页源代码. 2.利用正则 ...

  8. python下载电影天堂视频_一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接...

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的 ...

  9. 一篇文章教会你利用Python网络爬虫获取穷游攻略

    [一.项目背景] 穷游网提供原创实用的出境游旅行指南.攻略,旅行社区和问答交流平台,以及智能的旅行规划解决方案,同时提供签证.保险.机票.酒店预订.租车等在线增值服务.穷游"鼓励和帮助中国旅 ...

  10. python3爬虫有道翻译_一篇文章教会你利用Python网络爬虫获取有道翻译手机版的翻译接口...

    [一.项目背景] 有道翻译作为国内最大的翻译软件之一,用户量巨大.在学习时遇到不会的英语词汇,会第一时间找翻译,有道翻译就是首选.今天教大家如何去获取有道翻译手机版的翻译接口. ![image](ht ...

最新文章

  1. jQuery使用经验建议
  2. iPhone12要来了,苹果第一款5G手机,哪些值得期待?
  3. centos 6.8安装git_CentOS7安装GitLab、汉化、邮箱配置及使用
  4. git clone 失败
  5. Oracle服务器修改IP后
  6. ConvLab介绍及使用
  7. 【Elasticsearch】我们如何在 5 天内在同一个 Elasticsearch 集群中重新索引 360 亿份文档
  8. 解决Python3 pip list 红色DEPRECATION
  9. mfcs100ud.lib(dllmodul.obj):error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义
  10. 编译报错程序集版本高于所引用的程序集的版本
  11. 【图像聚类】基于matlab GUI K-means算法图像聚类【含Matlab源码 1787期】
  12. unicode转gbk python_使用python实现GBK转unicode码查询表
  13. 微信扫码支付、聚合支付
  14. 红帽Linux如何设置root权限,LINUX下 一句话添加用户并设置ROOT权限
  15. *微信开发内置浏览器JS自动关闭当前页面回到微信对话窗口
  16. deepin 安装到移动硬盘_系统装机|硬盘里的Linux之deepin 20系统安装教程
  17. 第二章 Google 常用功能
  18. 大数据与认识论一、主体与对象
  19. js禁止退格键(Backspace)
  20. Linux虚拟机忘记密码

热门文章

  1. 一个项目经理的经验总结_小七_新浪博客
  2. kali之破解隔壁老王wifi
  3. 搜狗微信公众号文章搜索器---网赚必备工具
  4. RocketMQ一个新的消费组初次启动时从何处开始消费呢?
  5. 想要做网页游戏怎么办 ?PixiJs 篇(四)
  6. iOSButton文字和图片摆放的个字方式
  7. install报Failed to execute goal on project xxx: Could not resolve
  8. SwiftUI 教程之应用中实现 Core Spotlight搜索(教程含源码)
  9. Winedit 下载第三方库
  10. Ouino法国学习系统评价它是如何比其他学习软件