------废话不多说,直接写思路
------我是用浏览器驱动来写的(直接用request也可以,不过要记得UA伪装),然后通过xpath解析,最后保存到文件夹里面。 至于我为什么用浏览器驱动而不用request,文末我会解释。

网址:https://pvp.qq.com/web201605/wallpaper.shtml

爬取思路:首先获得网页,其次得到图片的list(如下图)

接下来,我们对第一个div解析(如下图),我们发现这个图片只是215✖120,必然是个小图片,不是我们需要的。因此,我们还要找。

我们从网页来看(见下图)我们把鼠标放上去,对应右边的代码部分我们发现是可以对应起来的,也就是说,我们找这个是正确的


接下来无非是把解析到的list用for循环走一遍。不过,这只是第一页的图片,我们把页面拉到最后,我们发现一共有25页,对应着我们外层还要25个for循环。思路到此为止,接下来我们看代码部分

首先,实例化一个驱动对象
bro = webdriver.Chrome(executable_path="chromedriver.exe")

其次,通过bro.page_source获得到页面的代码(这里就是我为什么说request也可以。这一步可以写成request.get(url,headers).text)

再然后,就是xpath解析了

获取英雄的div列表
hero_div=tree.xpath('//*[@id="Work_List_Container_267733"]/div')

对list循环获取每一个图片的名称以及二进制文件


img_name=div.xpath('./img/@alt')[0]+".jpg"
img_data=requests.get(url=img_url,headers=headers).content
img_path="../王者荣耀壁纸/"+img_name

最后就是保存,紧接着,系统会自动运行下一个外层的for循环,下面就是时间问题了

 with open(img_path,"wb") as f :f.write(img_data)

关于为什么不用线程池:线程池确实可以加快速度,但是我之前设置太多了,结果ip地址被封了,用代理也不行,哎!说多了都是泪,只能一次一次来了

为什么我喜欢用浏览器自动化而不是用request:首先,仁者见仁智者见智,我仅发表我个人看法
①request有时候解析到之后你需要注意编码,可能原来网页得编码是gbk而你得pycharm是utf-8,这就需要转译得过程,虽说转译并不是很难,一句话得事,但还是容易引起下面得代码编写
②其次,request需要UA伪装吧,浏览器自动化完全就是以一个浏览器得方式去访问得,实际上已经伪装过了
综上诉说,是我懒,嘿嘿嘿

#-*-coding:utf-8-*-
from selenium import webdriver
from lxml import etree
import requests
import os
import timeheaders={"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36 SLBrowser/6.0.1.9171"}
bro = webdriver.Chrome(executable_path="chromedriver.exe")if __name__ == '__main__':if not os.path.exists("../王者荣耀壁纸"):os.mkdir("../王者荣耀壁纸")bro.get("https://pvp.qq.com/web201605/wallpaper.shtml")for i in range(1,25):page_text=bro.page_sourcetree=etree.HTML(page_text)hero_div=tree.xpath('//*[@id="Work_List_Container_267733"]/div')# // *[ @ id = "Work_List_Container_267733"]for div in hero_div:img_url_list=div.xpath('./ul/li[6]/a/@href')if img_url_list==[]:print("获取失败")breakelse:img_url=img_url_list[0]img_name=div.xpath('./img/@alt')[0]+".jpg"img_data=requests.get(url=img_url,headers=headers).contentimg_path="../王者荣耀壁纸/"+img_namewith open(img_path,"wb") as f :f.write(img_data)print(F"{img_name}\t下载成功")time.sleep(1)bro.find_element_by_class_name("downpage").click()bro.close()

最后,附上我写的代码,页欢迎各位大佬的指正

王者荣耀皮肤壁纸爬取相关推荐

  1. python玩王者荣耀皮肤_爬取王者荣耀皮肤图片

    [python]代码库import urllib.request import re # 获取主页源码 url = 'https://pvp.qq.com/web201605/herolist.sht ...

  2. python玩王者荣耀皮肤_python 抓取王者荣耀皮肤 代码2年了 依旧可以抓取高清 王者皮肤...

    #!/usr/bin/env python #-*- coding: utf-8 -*- """抓取王者荣耀皮肤""" importrequ ...

  3. 利用python爬取王者荣耀皮肤壁纸

    作为python新手上路的小白,今天我来给大家安利一个爬取王者荣耀官方网站皮肤壁纸的项目,请大家多多关照! 一.登陆官网 首先我们登录王者荣耀官网,在菜单栏点击进入皮肤壁纸高清图可以看到以下画面: 通 ...

  4. 多线程爬取王者荣耀皮肤壁纸

    今天写了个小demo,多线程爬取王者荣耀全皮肤,话不多说,直入主题. https://pvp.qq.com/web201605/herolist.shtml这个是玩王者荣耀官网上的英雄列表,这个时候一 ...

  5. 爬虫 -- 王者荣耀爬虫,爬取每个英雄的皮肤图片

    前言 抓取的重点是找到每个英雄对应的id编号 分析 先观察单个英雄的单张皮肤图片的url(如下图马超的两张皮肤图片所示) 马超一共有三个皮肤(经典算第一张), 每张皮肤的url分别是 第一张: htt ...

  6. 爬虫案例 王者荣耀 皮肤壁纸下载

    代码 import urllib.request import json,sys,os ''' 函数功能 - 使用进度条 parameter - 下载的条数 ''' m=0 k=0 def down_ ...

  7. Python -- 获取王者荣耀皮肤壁纸(一)

  8. 如何运用python爬游戏皮肤_Python爬虫实战之 爬取王者荣耀皮肤

    王者荣耀是目前非常火的一款游戏,相信大家都对其中的人物很感兴趣,那么今天就带大家来爬取王者荣耀的皮肤,可以选一款喜欢的来当电脑壁纸.第一步,拿到url地址 第二步,获取各个人物皮肤数据 第三步,保存文 ...

  9. python玩王者荣耀皮肤_《王者荣耀》游戏皮肤用python免费“偷”

    原标题:<王者荣耀>游戏皮肤用python免费"偷" 本文使用Python制作爬虫,来爬取<英雄联盟><王者荣耀><神之浩劫>等游戏 ...

最新文章

  1. Linux中压缩、解压缩(tar/zip/bzip2/gz/gzip/zip)
  2. socket编程中常见的概念问题!
  3. Java生产环境下性能监控与调优详解 大纲 学习感悟
  4. 树形结构递归_递归和匿名函数
  5. 高通、腾讯游戏牵手 运用5G等技术升级游戏体验
  6. Fail - Fast机制
  7. 设置redis访问密码
  8. 如何处理 Kubeadm 搭建的集群证书过期问题
  9. 移动边缘计算(MEC)
  10. 规范JavaScript注释
  11. 【机器人学】机器人动力学参数辨识方法综述
  12. 月入1W+的自媒体达人都会用到的运营工具
  13. ios 请在设置中打开相机权限_iOS 检测相机权限是否打开
  14. oracle怎么查询关键字,Oracle 搜索关键字
  15. oracle报1653解决办法,“IMP-00058: 遇到 ORACLE 错误 1653”,如何解决?
  16. iphone11的计算机在哪,苹果备份文件的路径在哪?iphone11系列itunes备份文件位置介绍...
  17. 怎么用matlab画心形曲线方程,matlab画心形曲线
  18. 开源框架面试之MyBatis面试题
  19. 名帖82 苏轼 行楷《前赤壁赋诗卷》
  20. 如何解决HTML网页中文显示乱码

热门文章

  1. Android pins 模块化架构gradle配置
  2. Chrome插件-github贡献图形展示-Isometric
  3. 电销行业竞争与日俱增,西安外呼系统如何改善?
  4. VBO,VAO,,EBO-penGL进阶(二十) - 绘制一个长方形和一个三角形
  5. java z字形扫描矩阵_Z字形扫描
  6. 记录Java Steam流的一些用法
  7. pretty-errors:美化python异常输出以使其清晰易读
  8. python中text函数的语法_【01】Python基础语法
  9. 2021_WWW_Self-Supervised Multi-Channel Hypergraph Convolutional Network for Social Recommendation
  10. 计算机动漫设计需要学什么,计算机动画制作专业好学吗?都有哪些课程?