前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python爬虫】如何把抖音美女小姐姐视频数据(高清、无水印)保存到硬盘里

【Python爬虫】如何把抖音美女小姐姐视频数据(高清、无水印)保存到硬盘里

作者头像
松鼠爱吃饼干
发布2021-10-26 12:54:27
2.1K1
发布2021-10-26 12:54:27
举报
文章被收录于专栏:Python分享Python分享Python分享

前言

现在自媒体平台上经常有一些视频素材需要保存下来,但是大部分平台下载下来都带上了平台水印,影响视频美观。这次我们用爬虫,可以爬到高清无水印的视频

本文知识点

1、selenium模块的使用 2、requests模块的使用 3、re正则表达式的使用

有疑问的同学,或者想要Python相关资料的可以加群:1039649593 找管理员领取资料和一对一解答

环境介绍

  • python 3.8
  • pycharm 2021专业版 >>> 激活码
  • 谷歌浏览器/火狐浏览器
  • 谷歌驱动/火狐驱动

模块使用

  • requests >>> pip install requests
  • selenium >>> pip install selenium
  • re
  • time

内容

本次目标:爬取漂亮小姐姐视频内容

分析网页

F12或者鼠标右键点击检查 >>>选择network 下面 media 过滤音频和视频数据包

找到播放地址 (指定的当前视频的播放地址),视频播放地址, 是可以在视频详情页网页源代码里面可以获取

代码实现步骤:

  1. 发送请求, 对于视频详情页发送请求 https://www.douyin.com/video/7012228758782397699
  2. 获取数据, 获取网页源代码数据内容
  3. 解析数据, 提取视频播放地址 以及 视频标题
  4. 保存数据, 把小姐姐视频保存到本地

爬取一个视频内容

导入模块

import requests  # 数据请求模块 pip install requests
import re  # 正则表达式模块 内置模块 不需要安装

发送请求

url = 'https://www.douyin.com/video/6975418738799676680'
# headers 伪装 把python代码进行伪装 让服务器识别不出我是脚本
headers = {
    'cookie': 'douyin.com; ttcid=de99440b8a5c4d16affc993730f4983310; ttwid=1%7CwyS5KyrVGXLuX5nmoYq1CJi6RjbegNYEf85fr4LcrRM%7C1632744377%7C0ae37032dafd0b7394ba6c35f7d78fc3bcfc17bf3465ee87b6ffb23c9bd1d9aa; MONITOR_WEB_ID=aa02b1ce-7eca-4ca1-9945-26f6eb8736c4; passport_csrf_token_default=41c044ddb9a7768743f59ef8c445836b; passport_csrf_token=41c044ddb9a7768743f59ef8c445836b; odin_tt=59541282299fd6088773d60702c10e22cf395bbe2ad43387cc5a1f1268e0b49539d2228b027e13642805eaa6c46804e338df3a16d9da9c7178a2a202f7489d12; _tea_utm_cache_6383=undefined; douyin.com; s_v_web_id=verify_kuqvv6p4_YjqU18Ra_QeV7_4zv8_9ZB9_WBVgaVOs06uj; _tea_utm_cache_1300=undefined; __ac_nonce=061681c2f000567586575; __ac_signature=_02B4Z6wo00f01-i76fwAAIDCi7EplXNNuu.on-1AAJtQNYXvhFUOGADQjDBpv-bfFdUV4sLQv1NC67tc-k1IspofGeBvDhfKKqeZNZCOa.hxwhj-AHQQIVnquzZ7vtGjx2HSsG3GQLOgMse720; msToken=6sG90ahzLoVg7R4O5SAh_qe9OXTGEHiSZ4997ef5wn5ep5Jkg1NMJ0O73wMh-xJS3rYRUuk7Z6LBkKolkMEg63exfDDl-gsStfY6HfqBlmaaLfTTX6aDzd8dZvs=; msToken=htFRUeGN-Xof_NiqwMK2xx1UuA3wqQuzgbdl7KoH_hS2T730pt6bw7vz0RzU3BCuGiSq-YQF61qyvnSJY3CZqcUgAuLgBNWiD1vY3KIKZnMmGLoG1W3jMA==; tt_scid=9F5FY0k84EFeUv8G-wjVOB2.pGkWm9KQRvFIte.XLiJNaUyk1vHm5HoJgiDNYpzx9f71',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'
}
response = requests.get(url=url, headers=headers)

获取数据

print(response.text)

解析数据

提取视频播放地址,以及视频标题

title = re.findall('<title data-react-helmet="true"> (.*?)</title>', response.text)[0]
href = re.findall('src(.*?)vr%3D%2', response.text)[1]
video_url = requests.utils.unquote(href).replace('":"', 'https:') # 解码

保存数据

video_content = requests.get(url=video_url).content # 获取二进制数据内容
with open('video\\' + title + '.mp4', mode='wb') as f:
    f.write(video_content)
    print(title, video_url)

运行代码,得到数据

批量获取数据数据

导入模块

from selenium import webdriver  # pip install selenium 模拟人的行为操作浏览器
import time

实例化一个浏览器对象

driver = webdriver.Chrome()  # 实例化一个浏览器对象
driver.get('https://www.douyin.com/user/MS4wLjABAAAAK1Zd96kIeExggUquf_wrHUPDQYTZfjdGXClxQAJHyMQ')
time.sleep(3)  # 延时3秒钟 手动打码
drop_down()

提取标签

lis = driver.find_elements_by_css_selector('#root > div.windows-os > div:nth-child(2) > div > div._67f6d320f692f9e5f19d66f4c8a1ecf9-scss > div._927ae3b0dd790b5b62eae61c7d2fa0bc-scss > div:nth-child(2) > ul > li')
for li in lis:
    url = li.find_element_by_css_selector('a').get_attribute('href')
    print(url)

执行页面滚动的操作

def drop_down():
    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)

替换特殊字符

title = re.sub(r'[\/:*?"<>|]', '_', title)

运行代码

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 松鼠爱吃饼干 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 本文知识点
  • 有疑问的同学,或者想要Python相关资料的可以加群:1039649593 找管理员领取资料和一对一解答
  • 环境介绍
  • 模块使用
  • 内容
    • 本次目标:爬取漂亮小姐姐视频内容
    • 分析网页
    • 代码实现步骤:
    • 爬取一个视频内容
      • 导入模块
        • 发送请求
          • 获取数据
            • 解析数据
              • 保存数据
                • 运行代码,得到数据
                • 批量获取数据数据
                  • 导入模块
                    • 实例化一个浏览器对象
                      • 提取标签
                        • 执行页面滚动的操作
                          • 替换特殊字符
                            • 运行代码
                            相关产品与服务
                            云点播
                            面向音视频、图片等媒体,提供制作上传、存储、转码、媒体处理、媒体 AI、加速分发播放、版权保护等一体化的高品质媒体服务。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档