王者荣耀皮肤壁纸爬取
------废话不多说,直接写思路
------我是用浏览器驱动来写的(直接用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()
最后,附上我写的代码,页欢迎各位大佬的指正
王者荣耀皮肤壁纸爬取相关推荐
- python玩王者荣耀皮肤_爬取王者荣耀皮肤图片
[python]代码库import urllib.request import re # 获取主页源码 url = 'https://pvp.qq.com/web201605/herolist.sht ...
- python玩王者荣耀皮肤_python 抓取王者荣耀皮肤 代码2年了 依旧可以抓取高清 王者皮肤...
#!/usr/bin/env python #-*- coding: utf-8 -*- """抓取王者荣耀皮肤""" importrequ ...
- 利用python爬取王者荣耀皮肤壁纸
作为python新手上路的小白,今天我来给大家安利一个爬取王者荣耀官方网站皮肤壁纸的项目,请大家多多关照! 一.登陆官网 首先我们登录王者荣耀官网,在菜单栏点击进入皮肤壁纸高清图可以看到以下画面: 通 ...
- 多线程爬取王者荣耀皮肤壁纸
今天写了个小demo,多线程爬取王者荣耀全皮肤,话不多说,直入主题. https://pvp.qq.com/web201605/herolist.shtml这个是玩王者荣耀官网上的英雄列表,这个时候一 ...
- 爬虫 -- 王者荣耀爬虫,爬取每个英雄的皮肤图片
前言 抓取的重点是找到每个英雄对应的id编号 分析 先观察单个英雄的单张皮肤图片的url(如下图马超的两张皮肤图片所示) 马超一共有三个皮肤(经典算第一张), 每张皮肤的url分别是 第一张: htt ...
- 爬虫案例 王者荣耀 皮肤壁纸下载
代码 import urllib.request import json,sys,os ''' 函数功能 - 使用进度条 parameter - 下载的条数 ''' m=0 k=0 def down_ ...
- Python -- 获取王者荣耀皮肤壁纸(一)
- 如何运用python爬游戏皮肤_Python爬虫实战之 爬取王者荣耀皮肤
王者荣耀是目前非常火的一款游戏,相信大家都对其中的人物很感兴趣,那么今天就带大家来爬取王者荣耀的皮肤,可以选一款喜欢的来当电脑壁纸.第一步,拿到url地址 第二步,获取各个人物皮肤数据 第三步,保存文 ...
- python玩王者荣耀皮肤_《王者荣耀》游戏皮肤用python免费“偷”
原标题:<王者荣耀>游戏皮肤用python免费"偷" 本文使用Python制作爬虫,来爬取<英雄联盟><王者荣耀><神之浩劫>等游戏 ...
最新文章
- Linux中压缩、解压缩(tar/zip/bzip2/gz/gzip/zip)
- socket编程中常见的概念问题!
- Java生产环境下性能监控与调优详解 大纲 学习感悟
- 树形结构递归_递归和匿名函数
- 高通、腾讯游戏牵手 运用5G等技术升级游戏体验
- Fail - Fast机制
- 设置redis访问密码
- 如何处理 Kubeadm 搭建的集群证书过期问题
- 移动边缘计算(MEC)
- 规范JavaScript注释
- 【机器人学】机器人动力学参数辨识方法综述
- 月入1W+的自媒体达人都会用到的运营工具
- ios 请在设置中打开相机权限_iOS 检测相机权限是否打开
- oracle怎么查询关键字,Oracle 搜索关键字
- oracle报1653解决办法,“IMP-00058: 遇到 ORACLE 错误 1653”,如何解决?
- iphone11的计算机在哪,苹果备份文件的路径在哪?iphone11系列itunes备份文件位置介绍...
- 怎么用matlab画心形曲线方程,matlab画心形曲线
- 开源框架面试之MyBatis面试题
- 名帖82 苏轼 行楷《前赤壁赋诗卷》
- 如何解决HTML网页中文显示乱码
热门文章
- Android pins 模块化架构gradle配置
- Chrome插件-github贡献图形展示-Isometric
- 电销行业竞争与日俱增,西安外呼系统如何改善?
- VBO,VAO,,EBO-penGL进阶(二十) - 绘制一个长方形和一个三角形
- java z字形扫描矩阵_Z字形扫描
- 记录Java Steam流的一些用法
- pretty-errors:美化python异常输出以使其清晰易读
- python中text函数的语法_【01】Python基础语法
- 2021_WWW_Self-Supervised Multi-Channel Hypergraph Convolutional Network for Social Recommendation
- 计算机动漫设计需要学什么,计算机动画制作专业好学吗?都有哪些课程?