您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Python

Python 带你采集抖音无水印视频内容,把你喜欢的视频保存

时间:2022-04-08 13:41:50  来源:  作者:python茜

前言

嗨喽!大家好呀,这里是Python/ target=_blank class=infotextkey>Python茜吖~

一个帮助用户表达自我,记录的视频平台。●记录美好、智能匹配音乐、一键卡点视频,超多原创、滤镜、场景切换帮你...

今天我们就来用Python 采集无水印视频内容

环境介绍:

  • python 3.8 解释器
  • pycharm 2021专业版 >>> 激活码 编辑器
  • 谷歌浏览器
  • 谷歌驱动
  • selenium >>> 驱动 >>> 浏览器

模块使用]:

采集一个视频

  • requests >>> pip install requests
  • re

采集多个视频

  • selenium >>> pip install selenium==3.141.0 (3.141.0) 指定模块版本去安装
    使用这个模块安装浏览器驱动
  • time

模块安装问题:

如果安装python第三方模块:

    1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
    2. 在pycharm中点击Terminal(终端) 输入安装命令

安装失败原因

失败一: pip 不是内部命令
解决方法: 设置环境变量

 

失败二: 出现大量报红 (read time out)
解决方法: 因为是网络链接超时, 需要切换镜像源
清华:
https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:
https://mirrors.aliyun.com/pypi/simple/
中国科技大学
https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:
https://pypi.hustunique.com/
山东理工大学:
https://pypi.sdutlinux.org/
豆瓣:
https://pypi.douban.com/simple/
例如:pip3 install -i
https://pypi.doubanio.com/simple/ 模块名

 

失败三: cmd里面显示已经安装过了, 或者安装成功了, 但是在pycharm里面还是无法导入
解决方法: 可能安装了多个python版本 (anaconda 或者 python 安装一个即可) 卸载一个就好
或者你pycharm里面python解释器没有设置好


如何配置pycharm里面的python解释器?

选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)点击齿轮, 选择add添加python安装路径


pycharm如何安装插件?

选择file(文件) >>> setting(设置) >>> Plugins(插件)点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese选择相应的插件点击 install(安装) 即可安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效


爬虫实现思路流程: (****)

一. 数据来源分析确定爬取的内容是什么?
爬取抖音视频内容通过开发者工具进行抓包分析 F12 或者 鼠标右键点击插件选.NETwork
I. 通过分析已经找到播放地址
II. 去分析, 播放地址可以从什么获取
对于视频播放url地址 进行一次转码 *** >>> 等会提取的时候 需要进行解码

 

二. 代码实现步骤

过程发送请求, 用python代码模拟浏览器去发送请求

获取数据, 获取服务器返回响应数据

解析数据, 提取视频url地址 以及 视频标题

保存数据, 保存数据到本地


开始我们的代码

导入模块

# 导入数据请求模块
import requests  # pip install requests  win + R 输入cmd
# 导入正则
import re  # 内置模块 不需要大家去安装
import time  # 时间模块
from selenium import webdriver  # pip install selenium==3.141.0

代码

def drop_down():
    """执行页面滚动的操作"""  # JAVAscript
    for x in range(1, 30, 4):  # 1 3 5 7 9  在你不断的下拉过程中, 页面高度也会变的
        time.sleep(1)
        j = x / 9  # 1/9  3/9  5/9  9/9
        # document.documentElement.scrollTop  指定滚动条的位置
        # document.documentElement.scrollHeight 获取浏览器页面的最大高度
        js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
        driver.execute_script(js)


# 人怎么去操作浏览器的, 就怎么写代码...
# 1. 打开一个浏览器或者下载一个浏览器吧 创建浏览器对象(实例化一个浏览器对象)
driver = webdriver.Chrome()
# 2. 输入一个网址 请求网址
driver.get('https://www.douyin.com/user/MS4wLjABAAAA4N4OrZzTSmCPp8vVAqCeyU215Kav2JgFv2Lfy4DNWRs')
driver.implicitly_wAIt(10)
# 3. 提取所有li标签 返回列表
# drop_down()
lis = driver.find_elements_by_css_selector('.ECMy_Zdt')
for li in lis:
    html_url = li.find_element_by_css_selector('a').get_attribute('href')
    print(html_url)
    #  1. 发送请求, 用python代码模拟浏览器去发送请求
    # url = 'https://www.douyin.com/video/7066324040335592738'
    # headers 作用 伪装python代码 伪装成浏览器 user-agent: 用户代理 浏览器基本身份标识  cookie 用于检测用户信息, 是否有登陆账号
    headers = {
        'cookie': 'douyin.com; ttcid=444dfe8e89ff4d99b0662076ad171c8775; ttwid=1%7CTnFKlrGi3lHjKf5bshFdP9Nwu_Vsiwo-TxvX9NISgj8%7C1642083887%7Cfbfa904ea2900763eb6ac090bdd09014d80840da1ca485bbfea193d5401b330e; MONITOR_WEB_ID=6d75c626-96a0-4270-ac18-aa0090b5bdb8; MONITOR_DEVICE_ID=341246a2-17c2-4c11-9c70-3ffd2cda0ffa; MONITOR_WEB_ID=c27b9f4a-4917-4256-be93-e948308467e3; odin_tt=0510c3c4196f54b541a96ac64e8b585b3a755be85057da8a1f3fa068e3f7b75ca2de4345e2b856f1e7b3f9455d86079731fe7d07a9f10890f26855d3674858e1; _tea_utm_cache_6383=undefined; douyin.com; strategyABtestKey=1648291293.035; passport_csrf_token=e0b90cb756903c370592bd558c2b0cf5; passport_csrf_token_default=e0b90cb756903c370592bd558c2b0cf5; AB_LOGIN_GUIDE_TIMESTAMP=1648291292963; s_v_web_id=verify_l17q2u00_kNENOykG_BIPh_4VLs_AVDZ_yMj0GtFSNH1u; _tea_utm_cache_1300=undefined; _tea_utm_cache_2285=undefined; THEME_STAY_TIME=299042; IS_HIDE_THEME_CHANGE=1; msToken=5X5W_7rY6cmo_SaaiMyCREV1hCZs-Jd9b7whX5GNCZsd9FU0zCTWYYAl0VhqGGUCjKS3bQf0f191VXdWHPNgqUz08MHEhk6qWhu4wVOlxhLyh3Vliaw37NU=; __ac_nonce=0623f02e00009007ea9bb; __ac_signature=_02B4Z6wo00f010eZ3RAAAIDCJJMde2RciUNHvdmAALPkmrPh1wY1Ey-OtTubjdK69ub9bqUt9DNRx8aP7dPtbOjyxcxyyK6yToF.7c4e615hiM5fYGwFCq0x8jHiY7BYLt6JZLIH8y38eMikd9; home_can_add_dy_2_desktop=1; msToken=fSBhJysNLifNHon5sgM-8n_3ZzJD49mCn9GUHLQydo7g52tCvrhNEKMFhxKEKlAxdE-z7er6yxwoJyO7-C_RdyslJnPejx9AAnkluZ22tSxM4siS7FUuO8E=; tt_scid=T-Exmos8oZiW6Wkb0uEjKsqAdjzxSnn4nznfku9EUmnDmpgq6Me7VDpIiYW4Fv805451; pwa_guide_count=3',
        'user-agent': 'Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36'
    }
    response = requests.get(url=html_url, headers=headers)  # <Response [200]> 表示的是响应对象 200状态码 请求成功
    # 2. 获取数据
    # print(response.text)  # 获取html字符串数据  服务器返回response响应文本数据
    # 3. 解析数据
    # findall 找到所有, 从什么哪里去找什么数据  正则匹配出来数据返回都是列表数据 [] 列表 [0] 取第一个元素
    title = re.findall('<title data-react-helmet="true">(.*?) - 抖音</title>', response.text)[0]
    video_url = re.findall('src(.*?)vr%3D%2', response.text)[0]
    # print(video_url)
    video_url = requests.utils.unquote(video_url).replace('":"', 'https:')  # 解码 并且使用replace字符串替换
    # print(title)
    # print(video_url)
    # 4. 保存数据 视频数据内容
    video_content = requests.get(url=video_url, headers=headers).content  # 对于视频播放地址发送请求,获取二进制数据内容
    with open('video\' + title + '.mp4', mode='wb') as f:
        f.write(video_content)
    print(title, '保存完成')

视频地址

python采集抖音孙一宁所发小视频~简单爬虫小案例_哔哩哔哩_bilibili

尾语

好了,我的这篇文章写到这里就结束啦!

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!



Tags:Python   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Python 可视化:Plotly 库使用基础
当使用 Plotly 进行数据可视化时,我们可以通过以下示例展示多种绘图方法,每个示例都会有详细的注释和说明。1.创建折线图import plotly.graph_objects as go# 示例1: 创建简单...【详细内容】
2024-04-01  Search: Python  点击:(13)  评论:(0)  加入收藏
Python 办公神器:教你使用 Python 批量制作 PPT
介绍本文将介绍如何使用openpyxl和pptx库来批量制作PPT奖状。本文假设你已经安装了python和这两个库。本文的场景是:一名基层人员,要给一次比赛活动获奖的500名选手制作奖状,并...【详细内容】
2024-03-26  Search: Python  点击:(21)  评论:(0)  加入收藏
五分钟内完成个性化Python GUI计算器搭建
一、前言在本教程中,你将学习如何在Python中使用Tkinter在短短几分钟内制作自己的全功能GUI计算器。在完成本教程时,除了通常随Python标准库一起安装的Tkinter之外,不需要任何...【详细内容】
2024-01-05  Search: Python  点击:(110)  评论:(0)  加入收藏
50 条实用的编写Python 程序建议
好学编程总结的50 条实用的编写Python 程序建议,如果你要接触Python或准备要学习Python,希望对你有用。一、编程前言建议1:理解Pythonic概念,详见Python中的《Python之禅》。建...【详细内容】
2023-12-29  Search: Python  点击:(143)  评论:(0)  加入收藏
python 爬虫常用第三方库推荐
Python 是一种非常适合进行网络爬虫开发的语言,拥有丰富的第三方库和工具,可以方便快捷地实现各种爬虫需求。下面是好学编程总结的 Python 爬虫开发的一些常用步骤:1. 确定目标...【详细内容】
2023-12-29  Search: Python  点击:(92)  评论:(0)  加入收藏
使用 Python 连接 SQL Server 数据库并实时读取数据?
实时读取SQL Server数据库表并进行处理是一个常见的需求。在Python中,可以使用pyodbc库来连接SQL Server数据库,并使用pandas库来进行数据处理。下面是一个实战示例,演示如何实...【详细内容】
2023-12-28  Search: Python  点击:(98)  评论:(0)  加入收藏
Python 新手入门必学的20个开源库
Python 新手入门必学的20个开源库,今天好学编程全部整理出来了,有需要的小伙伴可以参考一下!1.requests主要功能:发起http请求做过爬虫的程序员一定知道Python的requests库,它使H...【详细内容】
2023-12-27  Search: Python  点击:(93)  评论:(0)  加入收藏
Python Selenium实现自动化测试及Chrome驱动使用!
本文将介绍如何使用Python Selenium库实现自动化测试,并详细记录了Chrome驱动的使用方法。通过本文的指导,读者将能够快速上手使用Python Selenium进行自动化测试。并了解如何...【详细内容】
2023-12-25  Search: Python  点击:(133)  评论:(0)  加入收藏
Python 的 match 有点好用,推荐试试
Match 和 switch 都是控制流语句,但它们在语法和用法上有一些区别。(1) 语法: switch 语句通常在其他编程语言中使用,如 C、C++、Java 等。它的语法通常是 switch(expression)...【详细内容】
2023-12-18  Search: Python  点击:(125)  评论:(0)  加入收藏
5 个让日常编码更简单的 Python 库
如果曾经在 Python 中使用过 subprocess 库,那么我们很有可能对它感到失望,它不是最直观的库,可能还有些复杂,并且很难处理底层系统调用的输出。但是 sh 库结束了低效使用子进程...【详细内容】
2023-12-14  Search: Python  点击:(163)  评论:(0)  加入收藏
▌简易百科推荐
一篇文章教会你使用Python中三种简单的函数
所谓函数,就是指:把某些特定功能的代码组成为一个整体,这个整体就叫做函数。一、函数简介所谓函数,就是指:把某些特定功能的代码组成为一个整体,这个整体就叫做函数。二、函数定义...【详细内容】
2024-04-11  Go语言进阶学习  微信公众号  Tags:Python   点击:(10)  评论:(0)  加入收藏
一篇文章带你了解Python的分布式进程接口
在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。一、前言在Thread和Process中,应当优...【详细内容】
2024-04-11  Go语言进阶学习    Tags:Python   点击:(8)  评论:(0)  加入收藏
Python 可视化:Plotly 库使用基础
当使用 Plotly 进行数据可视化时,我们可以通过以下示例展示多种绘图方法,每个示例都会有详细的注释和说明。1.创建折线图import plotly.graph_objects as go# 示例1: 创建简单...【详细内容】
2024-04-01  Python技术    Tags:Python   点击:(13)  评论:(0)  加入收藏
Python 办公神器:教你使用 Python 批量制作 PPT
介绍本文将介绍如何使用openpyxl和pptx库来批量制作PPT奖状。本文假设你已经安装了python和这两个库。本文的场景是:一名基层人员,要给一次比赛活动获奖的500名选手制作奖状,并...【详细内容】
2024-03-26  Python技术  微信公众号  Tags:Python   点击:(21)  评论:(0)  加入收藏
Python实现工厂模式、抽象工厂,单例模式
工厂模式是一种常见的设计模式,它可以帮助我们创建对象的过程更加灵活和可扩展。在Python中,我们可以使用函数和类来实现工厂模式。一、Python中实现工厂模式工厂模式是一种常...【详细内容】
2024-03-07  Python都知道  微信公众号  Tags:Python   点击:(36)  评论:(0)  加入收藏
不可不学的Python技巧:字典推导式使用全攻略
Python的字典推导式是一种优雅而强大的工具,用于创建字典(dict)。这种方法不仅代码更加简洁,而且执行效率高。无论你是Python新手还是有经验的开发者,掌握字典推导式都将是你技能...【详细内容】
2024-02-22  子午Python  微信公众号  Tags:Python技巧   点击:(41)  评论:(0)  加入收藏
如何进行Python代码的代码重构和优化?
Python是一种高级编程语言,它具有简洁、易于理解和易于维护的特点。然而,代码重构和优化对于保持代码质量和性能至关重要。什么是代码重构?代码重构是指在不改变代码外部行为的...【详细内容】
2024-02-22  编程技术汇    Tags:Python代码   点击:(42)  评论:(0)  加入收藏
Python开发者必备的八个PyCharm插件
在编写代码的过程中,括号几乎无处不在,以至于有时我们会拼命辨别哪个闭合括号与哪个开头的括号相匹配。这款插件能帮助解决这个众所周知的问题。前言在PyCharm中浏览插件列表...【详细内容】
2024-01-26  Python学研大本营  微信公众号  Tags:PyCharm插件   点击:(91)  评论:(0)  加入收藏
Python的Graphlib库,再也不用手敲图结构了
Python中的graphlib库是一个功能强大且易于使用的工具。graphlib提供了许多功能,可以帮助您创建、操作和分析图形对象。本文将介绍graphlib库的主要用法,并提供一些示例代码和...【详细内容】
2024-01-26  科学随想录  微信公众号  Tags:Graphlib库   点击:(92)  评论:(0)  加入收藏
Python分布式爬虫打造搜索引擎
简单分布式爬虫结构主从模式是指由一台主机作为控制节点负责所有运行网络爬虫的主机进行管理,爬虫只需要从控制节点那里接收任务,并把新生成任务提交给控制节点就可以了,在这个...【详细内容】
2024-01-25  大雷家吃饭    Tags:Python   点击:(62)  评论:(0)  加入收藏
站内最新
站内热门
站内头条