python实现某音自动登录+获取视频数据

这篇具有很好参考价值的文章主要介绍了python实现某音自动登录+获取视频数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

Dy这个东西想必大家都用过,而且还经常刷,今天就来用代码,获取它的视频数据

环境使用
Python 3.8
Pycharm

模块使用
requests
selenium
json
re

一. 数据来源分析

1. 明确需求
明确采集网站以及数据内容

网址: https://www.dy.com/user/MS4wLjABAAAAB0-gppwu15DtJJZmMpgUqakr7Jw_pmr7skR3IW6MwCQ?modal_id=7270865943398518050

数据: 视频链接 / 视频标题
2. 抓包分析
通过开发者工具进行抓包分析
I. 打开开发者工具: F12
II. 刷新网页
III. 找到数据链接

视频链接: https://v26-web.dyvod.com/295eea512e6f187309e6181297ec185e/64e8a7f8/video/tos/cn/tos-cn-ve-15c001-alinc2/o8vKACOD9NSbaA3mnggzfIO5QAgkqHnGr7sAeB/?a=6383&ch=26&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C3&cv=1&br=609&bt=609&cs=2&ds=3&ft=bvTKJbQQqU-mfJ4ZPo0OW_EklpPiXV8zNMVJEdBqSpvPD-I&mime_type=video_mp4&qs=15&rc=NTg8NzpoNGY2aGU0N2k1PEBpajhuNTY6ZmhtbTMzNGkzM0AtMy4xY2E0Xi4xYDNjX15iYSM2bl5scjRvLWdgLS1kLWFzcw%3D%3D&btag=e00010000&dy_q=1692965337&l=20230825200856A1A3326D295C25055965

IV. 通过关键字搜索, 找到链接对应数据包
视频链接 / 标题 --> 来自于网页源代码<进行编码>

二. 代码实现步骤

  1. 发送请求, 模拟浏览器对于url地址发送请求
  2. 获取数据, 获取服务器返回响应数据
  3. 解析数据, 提取我们需要的数据内容
    4.保存数据, 保存视频数据

代码实现

发送请求

模拟浏览器: <可以直接复制> response.text 获取响应文本数据 response.json() 获取响应json数据
response.content 获取响应二进制数据
我们使用requests.get()方法向指定的URL发送GET请求,并获取到响应的内容

headers = {
    # User-Agent 用户代理, 表示浏览器基本身份信息
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'
}
# 请求链接
url = 'https://www.dy.com/user/MS4wLjABAAAArgJe6h-DzQcvyZ1O71yXSdJFn19Tqq8lFCIffgy5SlhwYlkseK5aM5ETF8KoaGDK?modal_id=7270476649714421046&vid=7269532986553552140'
# 发送请求
response = requests.get(url=url, headers=headers)

解析数据

使用正则表达式来搜索和匹配HTML内容中的特定模式,以提取所需的数据。 调用re模块里面findall方法 re.findall(‘数据:
你需要的数据’, ‘数据源: 从什么地方获取数据’) --> 找到所有数据内容

# 获取响应文本数据  获取网页源代码内容
html_data = response.text
# 提取标题
title = re.findall('video_title" content="(.*?)"/>', html_data)[0]
# 提取视频信息 <经过了编码>
video_info = re.findall('<script id="RENDER_DATA" type="application/json">(.*?)</script>', html_data)[0]
# 解码
info = requests.utils.unquote(video_info)
# 把完整json数据格式字符串, 转成字典数据类型
json_data = json.loads(info)
# 根据冒号左边的内容[键], 提取冒号右边的内容[值]
video_url = 'https:' + json_data['app']['videoDetail']['video']['bitRateList'][0]['playAddr'][0]['src']

保存数据

对于视频链接发送请求, 获取二进制数据内容, 保存本地文件夹

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)
print(video_url)

模拟登录

导入所需模块

# 自动化测试模块
from selenium import webdriver
# demo
from chaojiying import Chaojiying_Client
from password import account, password
# 动作链
from selenium.webdriver.common.action_chains import ActionChains

自动登录浏览器

# 打开浏览器, 访问网站
driver = webdriver.Chrome()
driver.get('https://www.dy.com/user/MS4wLjABAAAAB0-gppwu15DtJJZmMpgUqakr7Jw_pmr7skR3IW6MwCQ')
# 延时
driver.implicitly_wait(10)
time.sleep(2)
# 获取验证码图片
img_label = driver.find_element_by_css_selector('.captcha_verify_container')
# 截图 保存验证码图片
img_label.screenshot('yzm.png')

调用
python实现某音自动登录+获取视频数据,python新手入门,基础入门,爬虫,python,爬虫,数据可视化

# 调用 --> 帮助我们识别文字坐标
chaojiying = Chaojiying_Client(账号, 密码, '96001')
# 读取图片
im = open('yzm.png', 'rb').read()
result = chaojiying.PostPic(im, '9004')['pic_str']
for res in result.split('|'):
    x = res.split(',')[0]
    y = res.split(',')[-1]
    ActionChains(driver).move_to_element_with_offset(img_label, int(x), int(y)).click().perform()

driver.find_element_by_css_selector('.captcha_verify_action div:last-of-type').click()
time.sleep(2)driver.implicitly_wait(10)
lis = driver.find_elements_by_class_name('Eie04v01')
for li in lis:
    video_id = li.find_element_by_css_selector('a').get_attribute('href').split('/')[-1]

最后代码运行结果展示

python实现某音自动登录+获取视频数据,python新手入门,基础入门,爬虫,python,爬虫,数据可视化文章来源地址https://www.toymoban.com/news/detail-699834.html

到了这里,关于python实现某音自动登录+获取视频数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python自动获取字母站视频

    如果有疑问的话可以在我的谈论群: 706128290 来找我 目录 前言 二、编写代码 1.引入库 2.编写主类 3. 自动获取cookies值和生成headers 4.获取命令行参数 运行效果 browser_cookie3 第三方模块 browser_cookie3是browser_cookie模块的分支,它可以获取到电脑上的浏览器cookies,本次程序会使用到

    2024年02月16日
    浏览(34)
  • Python实现批量QQ自动登录

    需要使用 Python 设计一个 QQ 的批量自动登录的脚本, 查了一些资料, 通过调 API 实现该功能。 代码主要使用了几个常用的 API win32gui win32api win32con PyUserInput 前置需要安装 PyHook,否则会报错 pykeyboard pymouse 参考链接 PyHook3 安装 https://www.cnblogs.com/Denon-CAT/p/12771357.html 注意 在使用该程

    2024年02月16日
    浏览(37)
  • 最新Python 实现自动登录抖音(京东),实现滑块自动滑过

    爬虫的过程中会遇到很多反爬的网站,今天就来讲讲字节系下抖店的滑块验证码的破解流程,谷歌驱动chromedriver路径此处忽略,自己可以去配置,希望对有疑问的同学有帮助,仅作参考。 一、使用Python+selenium实现此功能 1.既然用到selenium,第一步就要先配置初始化selenium 代码

    2023年04月08日
    浏览(38)
  • Python利用Selenium实现自动化验证登录

    Python里面使用Selenium是一个很重要的自动化测试模块,我们可以用它写一个验证登录脚本,有了这个可以用来保存cookie信息等,下面是一个简单的demo:

    2024年02月15日
    浏览(46)
  • python+selenium绕过滑块验证,实现自动登录

    实现taobao自动化登录,当用webdriver打开淘宝时,滑块验证一直失败,手动滑都会失败。因为淘宝会检测window.navigator.webdriver,控件检测到你是selenium进入,所以就会弹出滑块验证。只需要绕过检测就能实现自动登录 验证了两种方法可以跳过: 第一种是给浏览器加启动参数,开

    2024年02月12日
    浏览(52)
  • 某音短视频评论采集翻页(移动安全篇)

    本章测试一个作品的评论及翻页: 以及前面的抓x包方式,在专栏里也有很多,xposed抓包过sslping,通用版本等; https://codeooo.blog.csdn.net/category_11500477.html 翻页通过页码来控制:

    2024年02月11日
    浏览(33)
  • java自动登录 selenium 自动登录并获取cookie

    我用的edge,谷歌我的版本太高没有对应的驱动… 下载Edge的驱动程序,直接解压就好里面只有一个.exe文件 https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

    2024年02月08日
    浏览(40)
  • Python用selenium实现自动登录和下单的项目实战

    前言 学python对selenium应该不陌生吧 Selenium 是最广泛使用的开源 Web UI(用户界面)自动化测试套件之一。Selenium 支持的语言包括C#,Java,Perl,PHP,Python 和 Ruby。目前,Selenium Web 驱动程序最受 Python 和 C#欢迎。 Selenium 测试脚本可以使用任何支持的编程语言进行编码,并且可以

    2024年01月24日
    浏览(41)
  • Python自动化实现抖音自动刷视频

    本文主要介绍了Python自动化实现抖音自动刷视频,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 环境准备 实现 Python3.5以上 Appium Server服务器 Android SDK,需要用到adb服务 需要依赖Appium-Pytho

    2024年02月12日
    浏览(39)
  • Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版)

    注意:这里采用的是新版的selenium有关事项 1.旧版FindsByID、FindsByCss等已被删除,并替换为Find_element(By.ID,\\\' \\\'),Find_elements(By.Xpath,\\\" \\\")等实例。 2.move_to_element_with_offset 的方法定位基准位置从左上角修改为中心   观察登录图标,账号、密码,登录按钮相关的元素 使用find_element()方法

    2024年02月04日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包