学习前提

1、了解python基础语法

2、了解re、selenium、BeautifulSoup、os、requests等python第三方库

1.引入库

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

爬取网站视频需要引入的第三方库:

import os

from selenium import webdriver

import requests

from bs4 import BeautifulSoup

import re

模块用处:

1、os模块:文件目录操作模块,用于创建或者删除目录或文件。

2、selenium模块:python请求模块之一,用于某些特殊请求。

3、requests模块:用于请求网页地址。

4、BeautifulSoup模块:用于解析网页,获取页面元素或内容。

5、re模块:正则表达式,本程序中用于匹配视频链接。

2.请求网页地址

请求页面:

"""请求页面"""

header = {

"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"

} #请求

url = "http://www.kakadm.com/anime/2417/" #网页地址,这里以卡卡动漫中的无限斯特拉托斯为例

r = requests.get(url, headers=header)

html = r.text #以二进制打印页面

由上述代码获取如下页面:

2abab40b3993

请求头(反爬机制中的一种):

headers中包含网页请求中的请求头,每一个浏览器都有属于自己的请求头,因此需要更改,以免请求失败

3.解析网页,获取播放链接

解析上述页面:

"""解析页面"""

soup = BeautifulSoup(html, "html.parser")

urls = soup.find("div", class_="movurl").find_all("a") #查找视频播放链接

videourls = []

for u in urls:

videourls.append(u.get("href")) #由分析网页元素可知,仅获取链接部分内容

# 获取视频播放地址

str = "http://www.kakadm.com/"

for index, item in enumerate(videourls):

videourls[index] = str + item #加上前缀,获取13个视频播放链接

由上述代码获取如下页面:

2abab40b3993

4.解析网页,获取视频源链接,即获取后缀名含.mp4的链接

由上述代码获取视频播放页面后,获取源视频链接:

# 请求获取视频源mp4

videos = []

title = []

chrome_options = webdriver.ChromeOptions()

# 使用headless无界面浏览器模式,即不需要打开浏览器

chrome_options.add_argument('--headless')  # 增加无界面选项

chrome_options.add_argument('--disable-gpu')  # 如果不加这个选项,有时定位会出现问题

flag = 0

name = ''

for u in videourls:

# 启动浏览器,获取网页源代码

b = webdriver.Chrome(options=chrome_options)  # 建立Chrome的驱动

b.implicitly_wait(10)  # 隐式等待,动态查找元素

b.get(u)  # 在Chrome上打开网址

# 获取视频名字,如:无限斯特拉托斯

if flag == 0:

soup = BeautifulSoup(html, "html.parser")

name = soup.find("title").string.split('-')[0]  # 获取标签内的内容

flag = 1

# 进入iframe内嵌网页

b.switch_to.frame("playbox")  # 针对iframe标签,(id)

html = b.page_source  # 打印页面

soup = BeautifulSoup(html, "html.parser")

t = soup.find("title").string.split(' ')[0]  # 视频命名

v = re.findall(r'(http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+\.mp4)',

html)  # 获取mp4网址

t = name + " " + t

title.append(t)

videos.append(v)

print(v)

b.quit()  # 退出

由上述代码获取如下视频源链接:

2abab40b3993

注意:

在本例子中,卡卡动漫里的视频源链接放在ifame标签中,这是基本反爬机制之一。ifame标签会隐藏其内的内容,用requests模块不能直接访问,需要在浏览器中访问,即需要selenium模块,通过针对iframe标签的方法b.switch_to.frame(id)

打开浏览器来访问iframe标签,并获取隐藏其中的视频源链接。

5.下载视频,并储存到指定文件夹

由上述代码获取视频源链接后,下载到指定文件目录:

"""下载mp4视频"""

i = 0  # 显示当前下载第几个视频

j = 0  # 遍历视频标题列表

# 创建视频文件目录

path = 'D:\Softdownload\Python\\videos\{}\\'.format(name)

if os.path.exists(path) == False:  # 如果文件不存在

os.mkdir(path)

for index, item in enumerate(videos):

i += 1

print("正在下载第{}个视频".format(i))

file_name = title[j] + '.mp4'  # 命名成mp4格式

j += 1

r = requests.get(videos[index][0], headers=header)  # 请求里面的网址

with open(path + file_name, 'wb') as f:  # 在指定文件夹下载视频,没有就创建

f.write(r.content)

由上述代码会建立如下文件目录:

2abab40b3993

还是不难的哈!希望能从文中学到你想要得到的!

python3下载网页视频_Python网络爬虫——爬取小视频网站源视频!自己偷偷看哦!...相关推荐

  1. python网络爬虫爬取视频_Python网络爬虫——爬取小视频网站源视频!自己偷偷看哦!...

    学习前提1.了解python基础语法 2.了解re.selenium.BeautifulSoup.os.requests等python第三方库 1.引入库 爬取网站视频需要引入的第三方库: impor ...

  2. python3网络爬虫--爬取b站用户投稿视频信息(附源码)

    文章目录 一.准备工作 1.工具 二.思路 1.整体思路 2.爬虫思路 三.分析网页 1.分析数据加载方式 2.分词接口url 3.分析用户名(mid) 四.撰写爬虫 五.得到数据 六.总结 上次写了 ...

  3. python网络爬虫_Python网络爬虫——爬取视频网站源视频!

    原标题:Python网络爬虫--爬取视频网站源视频! 学习前提 1.了解python基础语法 2.了解re.selenium.BeautifulSoup.os.requests等python第三方库 ...

  4. python网络爬虫网易云音乐下载_python网络爬虫爬取网易云音乐

    #爬取网易云音乐 url="https://music.163.com/discover/toplist" #歌单连接地址 url2 = 'http://music.163.com ...

  5. python如何爬虫网页数据-python网络爬虫爬取网页内容

    1.什么是网络爬虫? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自 ...

  6. python外国网站爬虫_python 网络爬虫-爬取网页外部网站

    前言 上一篇中我们在维基百科的内部网站上随机跳转进入文章类网页,而忽视外部网站链接.本篇文章将处理网站的外部链接并试图收集一些网站数据.和单个域名网站爬取不同,不同域名的网站结构千差万别,这就意味我们 ...

  7. Python网络爬虫——爬取小视频网站源视频!自己偷偷看哦!

    学习前提 1.了解python基础语法 2.了解re.selenium.BeautifulSoup.os.requests等python第三方库 1.引入库 PS:如有需要Python学习资料的小伙伴 ...

  8. python爬虫抓取动态网页数据_python网络爬虫抓取ajax动态网页数据:以抓取KFC门店地址为例...

    一,尝试用BeautifulSoup抓取 先打开KFC网站门店列表页面:http://www.kfc.com.cn/kfccda/storelist/index.aspx 可以看到门店列表如下图: 打 ...

  9. 用python网络爬虫爬取英雄联盟英雄图片

    用python爬虫爬取lol皮肤. 这也用python网络爬虫爬取lol英雄皮肤,忘了是看哪个大神的博客(由于当时学了下就一直放在这儿,现在又才拿出来,再加上马上要考二级挺忙的.),代码基本上是没改, ...

最新文章

  1. python numpy array最大长度_python 中 numpy array 中的维度
  2. 面向对象的程序设计之原型模式
  3. SRT协议在电视直播中的应用
  4. matlab pca和逆pca函数,matlab_PCA,训练集与测试集分开,原理和用法
  5. api商品分享源码_SSM框架高并发和商品秒杀项目高并发秒杀API源码免费分享
  6. js 控制页面跳转的5种方法
  7. Python二叉树遍历
  8. nyoj914Yougth的最大化(二分搜索 + 贪心)
  9. 网络(6)-TCP/IP对拥塞控制、滑动窗口如何实现可靠性?
  10. 实例变量,局部变量,全局变量,静态全局变量。
  11. Java常用类(详细)总结
  12. matlab实用教程 答案,含答案《matlab实用教程》.doc
  13. python花瓣网图片_python制作花瓣网美女图片爬虫
  14. 获取android手机步数,获取手机健康应用中的步数和距离
  15. 状态分布函数 详细介绍
  16. 接口管理工具Rap的安装
  17. openwrt php 编译环境,openwrt基础编译教程
  18. 如何使用Nginx防御DDoS攻击?
  19. ROS学习笔记之小乌龟跟随
  20. 微信小程序集合3(百度小说+电商+仿哗哩哗哩小视频+码绘本跟读+科学计算器+身份证查询+天气+投资理财微+外卖+在线音乐排行)

热门文章

  1. 激斗火柴人显示连接不上服务器,激斗火柴人激斗火柴人注意事项攻略
  2. A_A03_004 STM32程序ST-LINK下载
  3. 深度揭秘亚马逊无货源运营思路,掌握运营技巧
  4. 周易六十四卦——咸卦
  5. 阿路比I微型姿态传感器LPMS-BE-SM
  6. CoreAnimation余下的链接
  7. SVN服务端和客户端的说明与操作
  8. 计算机教案精美图片我收集,人教版三年级信息技术《第十四课 美化图片我来做》教案(精品获奖)...
  9. NOD32 杀毒软件
  10. CANoe-Ethernet IG和Ethernet Packet Builder的使用和区别