前言:

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:101677771

王者官网上的英雄讲解视频的确不错,但是不知道读者知不知道这个玩意啊!但愿知道吧!不过,即使不知道,看了小编的这篇文章也就知道了,注意:部分视频用小编的那个代码无法下载,希望大家谅解!

文章目录

  • 原标题:运用Python爬虫下载王者荣耀英雄讲解视频

    • 1.完成这个需要的Python模块和.exe文件
    • 2.怎样得到视频的下载链接
    • 3.完整实现整个操作
    • 4.运行结果视频和参考代码
    • 5.总结

1.完成这个需要的Python模块和.exe文件

需要的Python模块有selenium、requests、lxml、json、os。
讲到selenium,小编想就必须提到一个.exe文件,我用的是谷歌浏览器,即为chromedriver.exe,这个下载就不讲解了,不懂得读者可以看看小编得这篇文章,python下载网易云音乐,这篇文章里面小编讲到了这个.exe文件具体下载。

2.怎样得到视频的下载链接

视频的下载链接怎样得到呢?

也就是运用上面提到的那个selenium模块,我们来到这个界面,

网页为:https://pvp.qq.com/v/detail.shtml?G_Biz=18&tid=643431,按电脑键盘的F12键,可以发现这个下面有这个视频的下载链接,显然这个下载链接是动态加载的,所以要用到selenium模块。

怎样提取这个视频下载链接呢?当然是用xpath语法呐!

参考代码如下:

from selenium import webdriverurl='https://pvp.qq.com/v/detail.shtml?G_Biz=18&tid=643431'
driver=webdriver.Chrome()
driver.get(url=url)
driver.implicitly_wait(30)
print(driver.find_elements_by_xpath('.//txpdiv[@class="txp_video_container"]/video')[0].get_attribute('src'))
driver.close()

运行完成后,可以在运行结果中发现如下结果:

这就是这个视频的下载链接,点击进去就知道了。

3.完整实现整个操作

怎样根据自己的需要选择自己想了解的英雄呢?本来我是想爬取所有英雄链接和名字的,这个网址为:https://pvp.qq.com/web201605/herolist.shtml

但是,有了一个问题,那名字不知道是被加密了,还是怎的,运行结果是这样的。
代码为:

from lxml import etree
import requestsurl='https://pvp.qq.com/web201605/herolist.shtml'
headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3756.400 QQBrowser/10.5.4039.400'}
response=requests.get(url=url,headers=headers)
html=etree.HTML(response.text)
L2=html.xpath('.//ul[@class="herolist clearfix"]/li/a')
for i in range(len(L2)):print(L2[i].xpath('./text()'))

后面发现network下面的xhr里面有一个网址是这个的,虽然看到的和这个运行结果一样,但是用代码加载一下,就是原来的那个效果了。

代码运行结果:

代码为:

import requests
import jsonurl='https://pvp.qq.com/web201605/js/herolist.json'
headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3756.400 QQBrowser/10.5.4039.400'}
response=requests.get(url=url,headers=headers)
dict2=json.loads(response.text)
print(dict2)

现在,英雄的名字我们得到了,那么这个链接怎样得到呢?其实在这个json文件中,那个链接也已经得到了,只不过需要字符串拼接一下。
拼接成功后的这个网址,点击进去,就是这样

现在需要做的就是来到观看视频的界面,也就是点击上图中这个播放视频的符号,来到另外一个界面。

之后的操作就是第二个标题那里讲到的,小编就不一一讲解了。

4.运行结果视频和参考代码

运行结果:

运用Python爬虫下载王者荣耀英雄讲解视频

参考代码如下:

from selenium import webdriver
from lxml import etree
import requests
import json
import osclass wangZhe(object):def __init__(self):self.headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36'}self.url1 = 'https://pvp.qq.com/web201605/js/herolist.json'  # 网址一,存储英雄列表信息self.url2='https://pvp.qq.com/web201605/herodetail/%d.shtml'  # 网址二def getNames(self): # 定义一个方法,用于提取网址一中的英雄相关信息的数据response = requests.get(url=self.url1, headers=self.headers)str1 = response.textL2 = json.loads(str1)   # 列表类型for i in range(len(L2)):print('{}----{}'.format(i+1, L2[i]['cname']), end='\t\t')if (i+1) % 4 == 0:print()id=input('请输入想看的视频序号(具体格式为  1,2,5): ')id=id.split(',')id=[int(i) for i in id]L3=[[L2[i-1]['ename'] for i in id],[L2[i-1]['cname'] for i in id]]return L3def getInfo(self):L2=self.getNames()L3=L2[0]L4=list()for i in range(len(L3)):response=requests.get(url=self.url2%(L3[i]),headers=self.headers)html=etree.HTML(response.text)L4.append(html.xpath('.//a[@class="hero-video"]/@href')[0])L5=[L4,L2[1]]return L5def mkDir(self):  # 创建文件夹xpath=input('请输入创建文件夹的路径:')try:os.mkdir(xpath)except Exception as e:print('错误原因:{}'.format(e))return xpathdef writeDir(self,file,url):  # 写入文件response=requests.get(url=url,headers=self.headers)with open(file=file,mode='wb') as f:f.write(response.content)def downloadVideo(self):L4=self.getInfo()L5=L4[0]url='https:%s'%(L5[0])driver=webdriver.Chrome()driver.get(url=url)driver.implicitly_wait(30)L6=list()for i in range(1,len(L5)):url='https:%s'%(L5[i])driver2=webdriver.Chrome()driver2.get(url)downUrl=driver.find_elements_by_xpath('.//txpdiv[@class="txp_video_container"]/video')[0].get_attribute('src')L6.append(downUrl)driver.implicitly_wait(30)                        driver.close()driver=driver2downUrl=driver.find_elements_by_xpath('.//txpdiv[@class="txp_video_container"]/video')[0].get_attribute('src')L6.append(downUrl)driver.close()# 下面是写入文件操作path=self.mkDir()L7=L4[1]for i in range(len(L6)):if 'mp4' not in L6[i]:print('{}.mp4暂不支持下载!'.format(L7[i]))else:self.writeDir(file=path+'./{}.mp4'.format(L7[i]),url=L6[i])print('{}.mp4下载成功!'.format(L7[i]))if __name__ == "__main__":a=wangZhe()a.downloadVideo()

5.总结

这个程序还有一些不足,比如很少用try 和except ,也许有个时候就报错了,另外,也没有用到ip代理,如果有读者觉得小编的这篇文章还不错的话!记得点赞喔!

利用Python爬虫下载王者荣耀教学视频相关推荐

  1. python爬虫下载王者荣耀图片

    python爬虫下载王者荣耀图片 腾讯课堂白嫖的一堂课,大佬勿喷. import requests import jsondata = requests.get('http://pvp.qq.com/ ...

  2. Python爬虫下载王者荣耀全皮肤

    python爬虫下载王者荣耀全皮肤 import requests import os from time import timestart = time() headers = {'User-Age ...

  3. python玩王者荣耀皮肤_利用Python完成对王者荣耀英雄全皮肤的下载

    本文使用python的第三方模块requests爬取王者荣耀所有英雄的图片,并将图片按每个英雄为一个目录存入文件夹中,方便用作桌面壁纸. 基本环境配置 版本:Python3 系统:Windows 相关 ...

  4. python爬虫入门------王者荣耀英雄及皮肤数据爬取项目

    王者荣耀英雄及皮肤数据爬取项目 一:做前需知 笔者这段学习了一些爬虫的知识,然后做了一个小项目.接下来,我会把项目的流程展示出来. 运行环境:python 3.6.3.pycharm 2019-3-3 ...

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

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

  6. python爬取王者皮肤别人可以看见效果吗_利用python爬取王者荣耀英雄皮肤图片

    前两天看到同学用python爬下来LOL的皮肤图片,感觉挺有趣的,我也想试试,于是决定来爬一爬王者荣耀的英雄和皮肤图片. 然后,简单的分析一下结构,看看是否有反爬机制. 之后,在上网查阅资料后,发现所 ...

  7. 利用Python爬取王者荣耀英雄皮肤!

    image 0.引言 作为一款现象级游戏,王者荣耀,想必大家都玩过或听过,游戏里中各式各样的英雄,每款皮肤都非常精美,用做电脑壁纸再合适不过了.本篇就来教大家如何使用Python来爬取这些精美的英雄皮 ...

  8. 逆向分析pptv,利用python实现下载蓝光画质视频(Vip)

    前言 前几天我想看一个番剧, 正好搜索到了 PP视频,我才知道PP视频就是PPTV聚力,我想把番剧下载下来,结果发现视频竟然不是m3u8格式,而是多段mp4,所以简单的写了个脚本,可以在不登录的情况下 ...

  9. 【第1篇】Python爬虫实战-王者荣耀高清壁纸下载

    目标网址:https://pvp.qq.com/web201605/wallpaper.shtml 目录 1.页面分析 2.程序源码 3.结果展示 1.页面分析 通过F12打开浏览器控制台,刷新一下页 ...

最新文章

  1. 设计模式——命令模式(Command Pattern)
  2. 服务器测速,php在线测速
  3. 【深度学习】超强优化器如何与网络有机结合
  4. 人工神经网络基本特点
  5. 社保,交得越多亏得越多(转)
  6. Jenkins构建自动化脚本执行无界面解决方法
  7. 【KVM系列01】KVM简介及安装
  8. matlab涡轮机建模,数学实验大作业---数学曲面
  9. 【Android笔记】MediaPlayer基本使用方式
  10. Python - 字符串
  11. vue 数字变星号 过滤器_Vue自定义过滤器格式化数字三位加一逗号
  12. Android SimpleAdapter的参数
  13. 使用 Visual Studio 编译 wget 为库文件
  14. python语言中list和tuple有什么区别_python之list与tuple的区别
  15. Spring MVC【入门】就这一篇!
  16. python字符串补空格输出_python实现指定字符串补全空格、前面填充0的方法
  17. Win7系统主题路径
  18. Exchange Server2010系列之五:再谈邮箱基本管理
  19. python写透视挂_python – OpenCV透视变换给出了意想不到的结果
  20. 拓端tecdat|R语言POT超阈值模型和极值理论EVT分析

热门文章

  1. 三星 Watch 5 Pro 和Watch 4 Classic 选哪个好
  2. 从《后浪》争议声中,看B站到底该如何出圈? | Alfred数据室
  3. 深入浅出- ABP 多租户
  4. Android防止过快点击造成多次事件
  5. PyCharmLearningProject学习基础
  6. 利用iapp抓取葫芦侠板块帖子
  7. NoteBurner Netflix Video Downloader for Mac(专业Netflix视频下载器)
  8. 用飞书实现高效微办公
  9. 4.1 keras基础实例 手写数字识别
  10. 网络同步在游戏历史中的发展变化 — 优化技术总结