python爬取抖音视频的实例分析

现在抖音的火爆程度,大家都是有目共睹的吧,之前小编在网络上发现好玩的事情,就是去爬取一些网站,因此,也考虑能否进行抖音上的破案去,在实际操作以后,真的实现出来了,利用自动化工具,就可以轻松实现了,后有小伙伴提出把appium去掉瘦身之后也是可以实现的,那么看下详细操作内容吧。

1、mitmproxy/mitmdump抓包

import requests
path = 'D:/video/'
num = 1788
def response(flow):
 global num
 target_urls = ['url']
 for url in target_urls:
   if flow.request.url.startswith(url):
      filename = path + str(num) + '.mp4
   res = requests.get(flow.request.url, stream=True)
    with open(filename, 'ab') as f:
    f.write(res.content)
    f.flush()
    print(filename + '下载完成')
   num += 1

2、Appium对手机进行模拟操作

利用Start Server按钮即可启动appium服务

再点击Start Session即可启动Android手机上的抖音app并进入到启动页面

3、python脚本来驱动app,直接在pycharm运行即可

实例扩展:

import requests
import json
import re
import os
from pprint import pprint as pp
import queue

class DouYin:
 header = {
  'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
  'accept-encoding': 'gzip, deflate, br',
  'accept-language': 'zh-CN,zh;q=0.9',
  'cache-control': 'max-age=0',
  'upgrade-insecure-requests': '1',
  'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1',
 }

 def __init__(self, url=None):
  self.url = self.get_RealAddress(url)
  # 获取用户视频的url
  self.user_video_url = 'https://www.douyin.com/aweme/v1/aweme/post/?{0}'
  self.user_id = re.search(r'user/(.*)\?', self.url).group(1)		# 用户id
  requests.packages.urllib3.disable_warnings()
  self.session = requests.Session()
  self.target_folder = ''		# 创建文件的路径
  self.queue = queue.Queue()		# 生成一个队列对象

 def user_info(self):
  self.mkdir_dir()
  p = os.popen('node fuck.js %s' % self.user_id) # 获取加密的signature
  signature = p.readlines()[0]

  user_video_params = {
   'user_id': str(self.user_id),
   'count': '21',
   'max_cursor': '0',
   'aid': '1128',
   '_signature': signature
  }

  # 获取下载视频的列表
  def get_aweme_list(max_cursor=None):
   if max_cursor:
    user_video_params['max_cursor'] = str(max_cursor)
   user_video_url = self.user_video_url.format(
    '&'.join([key + '=' + user_video_params[key] for key in user_video_params])) # 拼接参数
   response = requests.get(
    url=user_video_url, headers=self.header, verify=False)
   contentJson = json.loads(response.content.decode('utf-8')) # 将返回的进行utf8编码
   aweme_list = contentJson.get('aweme_list', [])
   for aweme in aweme_list:
    video_name = aweme.get(
     'share_info', None).get('share_desc', None)  # 视频的名字
    video_url = aweme.get('video', None).get('play_addr', None).get(
     'url_list', None)[0].replace('playwm', 'play')  # 视频链接
    self.queue.put((video_name, video_url)) # 将数据进队列
   if contentJson.get('has_more') == 1: # 判断后面是不是还有是1就是还有
    return get_aweme_list(contentJson.get('max_cursor')) # 有的话获取参数max_cursor
  get_aweme_list()

 # 下载视频
 def get_download(self):
  while True:
   video_name, video_url = self.queue.get()
   file_name = video_name + '.mp4'
   file_path = os.path.join(self.target_folder, file_name)
   if not os.path.isfile(file_path):
    print('download %s form %s.\n' % (file_name, video_url))
    times = 0
    while times < 10:
     try:
      response = requests.get(
       url=video_url, stream=True, timeout=10, verify=False) # 开启流下载
      with open(file_path, 'wb') as f:
       for chunk in response.iter_content(1024): # 返回迭代对象
        f.write(chunk)
       print('下载成功')
      break
     except:
      print('下载失败')
     times += 1

 # 创建对应的文件夹

 def mkdir_dir(self):
  current_folder = os.getcwd()
  self.target_folder = os.path.join(
   current_folder, 'download/%s' % self.user_id)
  if not os.path.isdir(self.target_folder):
   os.mkdir(self.target_folder)

 # 短链接转长地址
 def get_RealAddress(self, url):
  if url.find('v.douyin.com') < 0:
   return url
  response = requests.get(
   url=url, headers=self.header, allow_redirects=False) # allow_redirects 允许跳转
  return response.headers['Location']

if __name__ == '__main__':
 douyin = DouYin(url='http://v.douyin.com/J2B9Sk/')
 douyin.user_info()
 douyin.get_download()

到此这篇关于python爬取抖音视频的实例分析的文章就介绍到这了,更多相关如何使用python爬取抖音视频内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 基于Python实现全自动下载抖音视频

    很多人喜欢玩抖音,我也喜欢看抖音小姐姐,可拿着手机一个个找视频太费劲.作为一个程序员,如何能在电脑前一边编程一边轻松地看抖音小姐姐呢? 下面利用Python,简单的三个步骤就可以将你喜欢的抖音小姐姐的视频自动下载下来了. Charles Charles是一个App抓包工具,与Filddler的功能相似,利用它可以得到App运行过程中发生的所有网络请求和响应内容. 在电脑端下载安装完Charles后,需要配置证书,最后开启SSL监听. 手机端则是需要与电脑在同一网络下,比如都连接家里的Wi-Fi,

  • python批量下载抖音视频

    本文实例为大家分享了python批量下载抖音视频的具体代码,供大家参考,具体内容如下 知识储备:博主是在Pycharm下进行的 文件夹:dou_ying 1:在文件夹doy_ying下新建第一个文件:dou_ying_video_download.py 代码: # coding=utf-8 """ @author: jiajiknag 程序功能:批量下载抖音视频 """ import requests import bs4 import os i

  • python一键去抖音视频水印工具

    无水印视频下载 方法一: 无水印视频下载很简单,有一个通用的方法,就是使用去水印平台即可. 我使用的去水印平台是:http://douyin.iiilab.com/ 在输入框中输入视频链接点击视频解析,就可以获得无水印视频链接. 这个网站当初我写代码的时候是好使的,当初用这个网站下了一些无水印视频,不过写这篇文章的时候发现这个取水印平台无法正常解析了,等它修复好了再用这个功能吧. 这个平台不仅包括抖音视频去水印,还支持火山.快手.陌陌.美拍等无水印视频.所以做一个这个网站的接口还是很合适的. 简

  • python批量爬取下载抖音视频

    本文实例为大家分享了python批量爬取下载抖音视频的具体代码,供大家参考,具体内容如下 import os import requests import re import sys import asyncio import aiohttp headers = { 'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) ' 'Ve

  • python实现抖音视频批量下载

    本文实例为大家分享了python实现抖音视频批量下载的具体代码,供大家参考,具体内容如下 这里就拿最近很火的抖音视频为例,利用API来实现用户抖音视频的批量下载 主要用到的模块有 1.requests模块: 2.bs4模块: import requests import bs4 import os import json import re import sys import time from contextlib import closing requests.packages.urllib

  • 使用python爬取抖音视频列表信息

    如果看到特别感兴趣的抖音vlogger的视频,想全部dump下来,如何操作呢?下面介绍介绍如何使用python导出特定用户所有视频信息 抓包分析 Chrome Deveploer Tools Chrome 浏览器开发者工具 在抖音APP端,复制vlogger主页地址, 比如: http://v.douyin.com/kGcU4y/ , 在PC端用chrome浏览器打卡,并模拟手机,这里选择iPhone, 然后把复制的主页地址,放到浏览器进行访问,页面跳转到 https://www.iesdouy

  • Python爬虫 批量爬取下载抖音视频代码实例

    这篇文章主要为大家详细介绍了python批量爬取下载抖音视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 项目源码展示: ''' 在学习过程中有什么不懂得可以加我的 python学习交流扣扣qun,934109170 群里有不错的学习教程.开发工具与电子书籍. 与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容. ''' # -*- coding:utf-8 -*- from contextlib import closing import request

  • python3下载抖音视频的完整代码

    python3下载抖音视频的代码如下所示: # -*- coding:utf-8 -*- from contextlib import closing import requests, json, re, os, sys, random from ipaddress import ip_address from subprocess import Popen, PIPE import urllib class DouYin(object): def __init__(self, width =

  • python爬取抖音视频的实例分析

    现在抖音的火爆程度,大家都是有目共睹的吧,之前小编在网络上发现好玩的事情,就是去爬取一些网站,因此,也考虑能否进行抖音上的破案去,在实际操作以后,真的实现出来了,利用自动化工具,就可以轻松实现了,后有小伙伴提出把appium去掉瘦身之后也是可以实现的,那么看下详细操作内容吧. 1.mitmproxy/mitmdump抓包 import requests path = 'D:/video/' num = 1788 def response(flow): global num target_urls

  • 使用python爬取抖音app视频的实例代码

    记录一下如何用python爬取app数据,本文以爬取抖音视频app为例. 编程工具:pycharm app抓包工具:mitmproxy app自动化工具:appium 运行环境:windows10 思路: 假设已经配置好我们所需要的工具 1.使用mitmproxy对手机app抓包获取我们想要的内容 2.利用appium自动化测试工具,驱动app模拟人的动作(滑动.点击等) 3.将1和2相结合达到自动化爬虫的效果 一.mitmproxy/mitmdump抓包 确保已经安装好了mitmproxy,并

  • 详解使用python爬取抖音app视频(appium可以操控手机)

    记录一下如何用python爬取app数据,本文以爬取抖音视频app为例. 编程工具:pycharm app抓包工具:mitmproxy app自动化工具:appium 运行环境:windows10 思路: 假设已经配置好我们所需要的工具 1.使用mitmproxy对手机app抓包获取我们想要的内容 2.利用appium自动化测试工具,驱动app模拟人的动作(滑动.点击等) 3.将1和2相结合达到自动化爬虫的效果 一.mitmproxy/mitmdump抓包 确保已经安装好了mitmproxy,并

  • python实现模拟器爬取抖音评论数据的示例代码

    目标: 由于之前和朋友聊到抖音评论的爬虫,demo做出来之后一直没整理,最近时间充裕后,在这里做个笔记. 提示:大体思路 通过fiddle + app模拟器进行抖音抓包,使用python进行数据整理 安装需要的工具: python3 下载 fiddle 安装及配置 手机模拟器下载 抖音部分: 模拟器下载好之后, 打开模拟器 在应用市场下载抖音 对抖音进行fiddle配置,配置成功后就可以当手机一样使用了 一.工具配置及抓包: 我们随便打开一个视频之后,fiddle就会刷新新的数据包 在json中

  • Python爬取qq空间说说的实例代码

    具体代码如下所示: #coding:utf-8 #!/usr/bin/python3 from selenium import webdriver import time import re import importlib2 import sys importlib2.reload(sys) def startSpider(): driver = webdriver.Chrome('/Users/zachary/zachary/chromedriver.exe') #这个是chormedriv

  • Python爬取腾讯视频评论的思路详解

    一.前提条件 安装了Fiddler了(用于抓包分析) 谷歌或火狐浏览器 如果是谷歌浏览器,还需要给谷歌浏览器安装一个SwitchyOmega插件,用于代理服务器 有Python的编译环境,一般选择Python3.0及以上 声明:本次爬取腾讯视频里 <最美公里>纪录片的评论.本次爬取使用的浏览器是谷歌浏览器 二.分析思路 1.分析评论页面 根据上图,我们可以知道:评论使用了Ajax异步刷新技术.这样就不能使用以前分析当前页面找出规律的手段了.因为展示的页面只有部分评论,还有大量的评论没有被刷新出

  • python爬取招聘要求等信息实例

    在我们人生的路途中,找工作是每个人都会经历的阶段,小编曾经也是苦苦求职大军中的一员.怀着对以后的规划和想象,我们在找工作的时候,会看一些招聘信息,然后从中挑选合适的岗位.不过招聘的岗位每个公司都有不少的需求,我们如何从中获取数据,来进行针对岗位方面的查找呢? 大致流程如下: 1.从代码中取出pid 2.根据pid拼接网址 => 得到 detail_url,使用requests.get,防止爬虫挂掉,一旦发现爬取的detail重复,就重新启动爬虫 3.根据detail_url获取网页html信息

  • python 爬取腾讯视频评论的实现步骤

    一.网址分析 查阅了网上的大部分资料,大概都是通过抓包获取.但是抓包有点麻烦,尝试了F12,也可以获取到评论.以电视剧<在一起>为例子.评论最底端有个查看更多评论猜测过去应该是 Ajax 的异步加载. 网上的大部分都是构建评论的网址,通过 requests 获取,正则表达式进行数据处理.本文也利用该方法进行数据处理,其实利用 scrapy 会更简单. 根据前辈给出的经验,顺利找到了评论所在的链接. 在新标签中打开,该网址的链接. 评论都在"content":"xx

随机推荐