首页 > 其他分享 > 批量爬取抖音视频

批量爬取抖音视频

时间:2022-09-23 13:23:39浏览次数:54  
标签:批量 url res 音视频 取抖 print path txt dou

先创建dou_url.txt,其实不用创建也行,运行第一遍代码的时候程序会自动创建

dou_url.txt里面可以填写多个视频url即可爬取,也可以填url加文字,因为用了正则表达式匹配。。。

比如:7.12 oQK:/ 重生回来第一节课,就给老师上了一课%%漫画解说 %%漫画 %%二次元 https://v.douyin.com/LK9nmKp/ 复制此链接,打开Dou音搜索,直接观看视频!

其实原理就是正则表达式匹配url


import time
import requests
import re
from selenium.webdriver import Chrome
import os
 
 
def create_note():
    if os.path.exists('dou_url.txt') == False:
        open('dou_url.txt', mode='w')
        print('创建 dou_url.txt 成功')
        print('请在 dou_url.txt 输入内容')
        return False
    else:
        print('dou_url.txt 已存在')
        return True
 
 
def read_txt():
    with open('dou_url.txt', 'r', encoding=u'utf-8') as f:
        data = f.read()  # 读取文件
        pattern = re.compile('[a-zA-z]+://[^\s]*')
        url = pattern.findall(data)
        print(url)
        return url
 
 
def open_url(url):
    web.get(url)
    time.sleep(2)
    try:
        while web.find_element_by_xpath('//*[@id="captcha-verify-image"]') is not None:
            print(end='')
    except:
        print(end='')
 
    time.sleep(1)
 
    source = web.page_source
 
    r = re.compile(r'<source class="" src="(.*?)" type="">')
    res = r.findall(source)
    res_url = 'https:' + res[0]
    print(res_url)
    return res_url
 
 
def download_video():
    url = read_txt()
    path = 'douyin'
    if not os.path.exists(path):
        os.mkdir(path)
 
    for i in url:
        video_url = open_url(i)
 
        with open(path + '\\' + f"{i.split('/')[-2]}" + '.mp4', 'wb') as f:
            f.write(requests.get(video_url).content)
    f.close()
 
 
if __name__ == '__main__':
    if create_note() == True:
        web = Chrome()
        download_video()

标签:批量,url,res,音视频,取抖,print,path,txt,dou
From: https://www.cnblogs.com/miyol/p/16722363.html

相关文章

  • Centos中批量删除空文件及空文件夹
    linux下批量删除空文件(大小等于0的文件)的方find.-name"*"-typef-size0c|xargs-n1rm-f用这个还可以删除指定大小的文件,只要修改对应的-size参数就行,例......
  • Linux下批量将tab替换为空格
    网上找到命令,实测有效记录一下find.-typef-execsed-i.orig's/\t/   /g'{}+如果是所有的c文件find.–name*.c-execsed-i.orig's/\t/   /g'{}+......
  • java批量采集豌豆荚网站Android应用图标和包名
    Android主题开发者做的主题,如果想代替第三方应用图标,就必须要知道应用的包名。其实想知道应用的包名很简单,直接在浏览器打开GooglePlay或豌豆荚,打开某应用的页面,看网址你......
  • python-mysql 批量造数据
    importpymysqldb=pymysql.connect(host="124.70.xxx.xxx",user="root",password="3xxxx",database="novel")mycursor=db.cursor()phone=......
  • Phoenix使用及搭建 bulkLoad实现批量导入
    PhoenixPhoenix和hbase共用一个zookeeper,但是在刚建好Phoenix的时候是读不到hbase中的表的,在Phoenix中建过表之后在hbase中可以看到,在hbase中建过表Phoenix中看不到Hbas......
  • bat批量修改文件名
    @echooffren"千锋Echarts+Vue3.0数据可视化项目构建_入门必备前端项目实战教程(P13.13饼状图更多设置).flv""P13.13饼......
  • 一招教你如何高效批量导入与更新数据
    一招教你如何高效批量导入与更新数据前言如果有一张表,我们既想对它更新,又想对它插入应该如何操作?可以使用UPDATE和INSERT完成你的目标。如果你的数据量很大,想尽快......
  • C# 大批量向数据库添加数据
    privatestaticvoidSqlFastInsert(DbConnectiondbConnection,DbTransactiontrans,DataTabledt){using(SqlBulkCopysqlbulkcopy=......
  • 批量查询更新
    --批量查询插入数据INSERTintodts_user_spread_mark_back(id,product_user_id,create_time)selectid,product_user_id,create_timefromdts_user_spread_mark--批......
  • sqlserver数据库批量新增修改类
    MSSqlServer数据库批量操作需要引用的命名空间usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Re......