Python新手爬虫四:爬取视频
老样子,先上最后成功源码(在D盘下创建'好看视频'文件夹,直接运行即可获取视频):
import sys
import re,os
import requests
from you_get import common as you_get def getVideo(url,path,headers):
demo = requests.get(url,headers=headers) # 获取网站信息
data = demo.json() # 转换为JSON格式
data_list = data['data']['response']['videos'] # 获取每个视频的属性列表 # 遍历,将每一个视频信息展示出来
for i in data_list:
title = i['title'] + '.mp4' # 获取视频名称(描述),视频要修改为的名称,为后边改名做准备
url1 = i['play_url'] # 获取视频源url
videoName = re.split('\?|/',url1)[5][:80]+'.mp4' # 视频下载后,会是一大串字母和数字的组合,这个主要就是获取视频下载后的原名称 # 开始下载
print('开始下载:' + title)
try:
sys.argv = ['you_get', '-o',path,url1] # 视频的属性编辑,选择路径等
you_get.main() # 开始下载
print('下载完成')
os.rename(path + videoName, path + title) # 下载完成后,改名操作
except:
print(title + '下载失败!')
if __name__ == '__main__':
url = 'https://haokan.baidu.com/videoui/api/videorec?tab=yingshi&act=pcFeed&pd=pc&num=20&shuaxin_id=1592551368953'
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54',
'cookie': 'BIDUPSID=517516CBF0261FA0AF6B039EAFEDF39C; PSTM=1589624436; BAIDUID=517516CBF0261FA090A0395C8BF0F31A:FG=1; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; PC_TAB_LOG=haokan_website_page; Hm_lvt_4aadd610dfd2f5972f1efee2653a2bc5=1592530622,1592545903; H_PS_PSSID=31906_1444_31671_21118_31254_32045_30823_32111; delPer=0; PSINO=2; yjs_js_security_passport=d270bf2526b634428ea81932e213c285b8e7cf21_1592546748_js; Hm_lpvt_4aadd610dfd2f5972f1efee2653a2bc5=1592550475; reptileData=%7B%22data%22%3A%22e3b78a008f54876b4fc19fe55faea5fb1ae054d9580474b00db252837ba6a6554cbfde0ada4567b9cad2322c5d972031cb300664e248e8f4a7b27fd91a479f4e02a1e7eceffa642289eba12075334687515e1451aa72eced7ac42e3fbb88a87139c95727da119f5dd9b85d281d98d4d98b943f43a06c3f13e6b63b812c5c40ce%22%2C%22key_id%22%3A%2230%22%2C%22sign%22%3A%2243b164d6%22%7D'}
path = r'D:\好看视频\\' getVideo(url,path,headers)
下载过程:
视频展示: 因为爬取的是推荐视频,每次执行会获取不同的视频。
先来介绍一下所用到的库
1、requests库:众所周知,爬虫神器
2、re库:主要用来split的
3、sys和you-get库:主要任务下载视频
4、os库:用来修改文件名
注意:库没安装记得pip install 库名
下边捋一下思路
1、进入好看视频网站—>影视(或者推荐随便哪个分类)—>随便找个视频右击—>检查
2、选择网络—>XHR—>选择包
获取到当前界面
3、展开data—>response—>videos层层扒开
会发现所有的视频id、title都在这里,格式是JSON
4、再来展开其中一条视频的信息,下边还有,截屏不全,视频所有的信息都在这了
5、我们主要用到的有title、play_url,你会发现,箭头所指的方向还有一个url标签,当你不确定url到底是哪个时,你可以直接复制到浏览器打开查看一下
6、到这里,视频的名称和url就已经获取到了,具体的实现过程就看上边的源码吧,基本都有注释
7、这里要简单说一下you-get库,是个非常强大的下载视频库,除了在脚本上应用,也可以直接在cmd中执行,先看下它支持的选项:
主要用到的有两个,一个是 -o 指定路径,另一个是--debug主要在错误时打印日志
比如随便找个B站视频下载下来:
是不是巨方便
Python新手爬虫四:爬取视频的更多相关文章
- python之爬虫(爬取.ts文件并将其合并为.MP4文件——以及一些异常的注意事项)
//20200115 最近在看“咱们裸熊——we bears”第一季和第三季都看完了,单单就第二季死活找不到,只有腾讯有资源,但是要vip……而且还是国语版……所以就瞄上了一个视频网站——可以在线观看 ...
- python爬虫(爬取视频)
爬虫爬视频 爬取步骤 第一步:获取视频所在的网页 第二步:F12中找到视频真正所在的链接 第三步:获取链接并转换成机械语言 第四部:保存 保存步骤代码 import re import request ...
- 利用python的爬虫技术爬取百度贴吧的帖子
在爬取糗事百科的段子后,我又在知乎上找了一个爬取百度贴吧帖子的实例,为了巩固提升已掌握的爬虫知识,于是我打算自己也做一个. 实现目标:1,爬取楼主所发的帖子 2,显示所爬去的楼层以及帖子题目 3,将爬 ...
- python网络爬虫《爬取get请求的页面数据》
一.urllib库 urllib是python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在python3中的为urllib.request和urllib. ...
- python网络爬虫--简单爬取糗事百科
刚开始学习python爬虫,写了一个简单python程序爬取糗事百科. 具体步骤是这样的:首先查看糗事百科的url:http://www.qiushibaike.com/8hr/page/2/?s=4 ...
- Python网络爬虫_爬取Ajax动态加载和翻页时url不变的网页
1 . 什么是 AJAX ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新 ...
- Python学习 —— 爬虫入门 - 爬取Pixiv每日排行中的图片
更新于 2019-01-30 16:30:55 我另外写了一个面向 pixiv 的库:pixiver 支持通过作品 ID 获取相关信息.下载等,支持通过日期浏览各种排行榜(包括R-18),支持通过 p ...
- 初识python 之 爬虫:爬取双色球中奖号码信息
人生还是要有梦想的,毕竟还有python.比如,通过python来搞一搞彩票(双色球).注:此文仅用于python学习,结果仅作参考.用到知识点:1.爬取网页基础数据2.将数据写入excel文件3.将 ...
- 初识python 之 爬虫:爬取中国天气网数据
用到模块: 获取网页并解析:import requests,html5lib from bs4 import BeautifulSoup 使用pyecharts的Bar可视化工具"绘制图表& ...
- 初识python 之 爬虫:爬取某网站的壁纸图片
用到的主要知识点:requests.get 获取网页HTMLetree.HTML 使用lxml解析器解析网页xpath 使用xpath获取网页标签信息.图片地址request.urlretrieve ...
随机推荐
- NXP i.MX 8M Mini工业级核心板规格书(四核ARM Cortex-A53 + 单核ARM Cortex-M4,主频1.6GHz)
1 核心板简介 创龙科技SOM-TLIMX8是一款基于NXP i.MX 8M Mini的四核ARM Cortex-A53 + 单核ARM Cortex-M4异构多核处理器设计的高端工业级核心板,AR ...
- QEMU + Vscode + Arm Arch's Linux调试小记
QEMU + Vscode + Arm Arch's Linux调试小记 前几天看到了一篇讲授如何调试ARM Linux内核的文章,这里现在记录一下调试ARM Linux内核的办法 下载QEMU ...
- linux 清理 pyinstaller 打包程序运行留下的临时文件
前言 pyinstaller 打包的 python 二进制可执行程序运行的时候,会在 /tmp 目录下生成 _MEI* (*指的是随机数字)文件夹, 如果程序没有正常退出或者终止了,_MEI* 文件夹 ...
- 常用 Java 组件和框架分类
WEB 容器 Tomcat https://tomcat.apache.org/ Jetty https://www.jetty.com/ JBoss https://www.jboss.org/ R ...
- Java 表达式执行引擎 jexl
介绍 JEXL的全称是Java表达式语言(Java Expression Language),简单的说,它可以配合我们的Java程序运算一些简单的表达式. 具体可以识别哪些表达式? 包含最基本的加减乘 ...
- 2024已过半,还没试过在vue3中使用ioc容器吗?
Vue3 已经非常强大和灵活了,为什么还要引入 IOC 容器呢?IOC 容器离不开 Class,那么我们就从 Class 谈起 Class的应用场景 一提起 Class,大家一定会想到这是 Vue 官 ...
- UML类图的表示
1.类的表示方法 2.接口的两种表示方法 3.类的继承怎么表示 空心三角形+实线 4.类实现接口 空心三角形+虚线 5.关联(association)关系 实线箭头 6.聚合(aggregation) ...
- [oeasy]python0037_电传打字机_打印头_print_head_carriage_词源
换行回车 回忆上次内容 上次我们 diy了 自己的小动物 还可以 让小动物 变色.报时 还可以 说些话 这很亚文化 很酷炫的亚文化 不是吗? 回忆一下 最开始 研究报时 的 时候 回到 本行行头 的 ...
- 基于动态数据源的SAAS系统(SpringBoot+MybaitsPlus+Durid)
一.什么是SAAS系统 SAAS全称 Software as a Service,软件即服务.本人接触SAAS也在近两年:在我的理解,SAAS不是特指某种系统,它是提供某类产品的系统服务平台,让第三方 ...
- linux性能资源分析工具
linux性能资源分析工具 1,top 2,ps 3,uptime 4,mpstat 5,pidstat 6,vmstat 7,iostat 8,netstat 9,lsof 10,sar / nmo ...