mirror of
https://github.com/Evil0ctal/Douyin_TikTok_Download_API.git
synced 2025-04-20 22:40:08 +08:00
✅ Chenge type hinting
This commit is contained in:
parent
636fea0720
commit
fcef192754
34
scraper.py
34
scraper.py
@ -2,8 +2,8 @@
|
|||||||
# -*- encoding: utf-8 -*-
|
# -*- encoding: utf-8 -*-
|
||||||
# @Author: https://github.com/Evil0ctal/
|
# @Author: https://github.com/Evil0ctal/
|
||||||
# @Time: 2021/11/06
|
# @Time: 2021/11/06
|
||||||
# @Update: 2022/12/02
|
# @Update: 2022/12/04
|
||||||
# @Version: 3.1.2
|
# @Version: 3.1.3
|
||||||
# @Function:
|
# @Function:
|
||||||
# 核心代码,估值1块(๑•̀ㅂ•́)و✧
|
# 核心代码,估值1块(๑•̀ㅂ•́)و✧
|
||||||
# 用于爬取Douyin/TikTok数据并以字典形式返回。
|
# 用于爬取Douyin/TikTok数据并以字典形式返回。
|
||||||
@ -19,6 +19,8 @@ import asyncio
|
|||||||
import orjson
|
import orjson
|
||||||
import traceback
|
import traceback
|
||||||
import configparser
|
import configparser
|
||||||
|
|
||||||
|
from typing import Union
|
||||||
from tenacity import *
|
from tenacity import *
|
||||||
|
|
||||||
|
|
||||||
@ -26,25 +28,25 @@ class Scraper:
|
|||||||
"""
|
"""
|
||||||
简介/Introduction
|
简介/Introduction
|
||||||
|
|
||||||
Scraper.get_url(text: str) -> str or None
|
Scraper.get_url(text: str) -> Union[str, None]
|
||||||
用于检索出文本中的链接并返回/Used to retrieve the link in the text and return it.
|
用于检索出文本中的链接并返回/Used to retrieve the link in the text and return it.
|
||||||
|
|
||||||
Scraper.convert_share_urls(self, url: str) -> str or None\n
|
Scraper.convert_share_urls(self, url: str) -> Union[str, None]\n
|
||||||
用于转换分享链接为原始链接/Convert share links to original links
|
用于转换分享链接为原始链接/Convert share links to original links
|
||||||
|
|
||||||
Scraper.get_douyin_video_id(self, original_url: str) -> str or None\n
|
Scraper.get_douyin_video_id(self, original_url: str) -> Union[str, None]\n
|
||||||
用于获取抖音视频ID/Get Douyin video ID
|
用于获取抖音视频ID/Get Douyin video ID
|
||||||
|
|
||||||
Scraper.get_douyin_video_data(self, video_id: str) -> dict or None\n
|
Scraper.get_douyin_video_data(self, video_id: str) -> Union[dict, None]\n
|
||||||
用于获取抖音视频数据/Get Douyin video data
|
用于获取抖音视频数据/Get Douyin video data
|
||||||
|
|
||||||
Scraper.get_douyin_live_video_data(self, original_url: str) -> str or None\n
|
Scraper.get_douyin_live_video_data(self, original_url: str) -> Union[str, None]\n
|
||||||
用于获取抖音直播视频数据/Get Douyin live video data
|
用于获取抖音直播视频数据/Get Douyin live video data
|
||||||
|
|
||||||
Scraper.get_tiktok_video_id(self, original_url: str) -> str or None\n
|
Scraper.get_tiktok_video_id(self, original_url: str) -> Union[str, None]\n
|
||||||
用于获取TikTok视频ID/Get TikTok video ID
|
用于获取TikTok视频ID/Get TikTok video ID
|
||||||
|
|
||||||
Scraper.get_tiktok_video_data(self, video_id: str) -> dict or None\n
|
Scraper.get_tiktok_video_data(self, video_id: str) -> Union[dict, None]\n
|
||||||
用于获取TikTok视频数据/Get TikTok video data
|
用于获取TikTok视频数据/Get TikTok video data
|
||||||
|
|
||||||
Scraper.hybrid_parsing(self, video_url: str) -> dict\n
|
Scraper.hybrid_parsing(self, video_url: str) -> dict\n
|
||||||
@ -96,7 +98,7 @@ class Scraper:
|
|||||||
|
|
||||||
# 检索字符串中的链接
|
# 检索字符串中的链接
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_url(text: str) -> str or None:
|
def get_url(text: str) -> Union[str, None]:
|
||||||
try:
|
try:
|
||||||
# 从输入文字中提取索引链接存入列表/Extract index links from input text and store in list
|
# 从输入文字中提取索引链接存入列表/Extract index links from input text and store in list
|
||||||
url = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', text)
|
url = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', text)
|
||||||
@ -109,7 +111,7 @@ class Scraper:
|
|||||||
|
|
||||||
# 转换链接/convert url
|
# 转换链接/convert url
|
||||||
@retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2))
|
@retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2))
|
||||||
async def convert_share_urls(self, url: str) -> str or None:
|
async def convert_share_urls(self, url: str) -> Union[str, None]:
|
||||||
"""
|
"""
|
||||||
用于将分享链接(短链接)转换为原始链接/Convert share links (short links) to original links
|
用于将分享链接(短链接)转换为原始链接/Convert share links (short links) to original links
|
||||||
:return: 原始链接/Original link
|
:return: 原始链接/Original link
|
||||||
@ -187,7 +189,7 @@ class Scraper:
|
|||||||
"""__________________________________________⬇️Douyin methods(抖音方法)⬇️______________________________________"""
|
"""__________________________________________⬇️Douyin methods(抖音方法)⬇️______________________________________"""
|
||||||
|
|
||||||
# 获取抖音视频ID/Get Douyin video ID
|
# 获取抖音视频ID/Get Douyin video ID
|
||||||
async def get_douyin_video_id(self, original_url: str) -> dict or None:
|
async def get_douyin_video_id(self, original_url: str) -> Union[str, None]:
|
||||||
"""
|
"""
|
||||||
获取视频id
|
获取视频id
|
||||||
:param original_url: 视频链接
|
:param original_url: 视频链接
|
||||||
@ -225,7 +227,7 @@ class Scraper:
|
|||||||
|
|
||||||
# 获取单个抖音视频数据/Get single Douyin video data
|
# 获取单个抖音视频数据/Get single Douyin video data
|
||||||
@retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2))
|
@retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2))
|
||||||
async def get_douyin_video_data(self, video_id: str) -> dict or None:
|
async def get_douyin_video_data(self, video_id: str) -> Union[dict, None]:
|
||||||
"""
|
"""
|
||||||
:param video_id: str - 抖音视频id
|
:param video_id: str - 抖音视频id
|
||||||
:return:dict - 包含信息的字典
|
:return:dict - 包含信息的字典
|
||||||
@ -250,7 +252,7 @@ class Scraper:
|
|||||||
|
|
||||||
# 获取单个抖音直播视频数据/Get single Douyin Live video data
|
# 获取单个抖音直播视频数据/Get single Douyin Live video data
|
||||||
@retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2))
|
@retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2))
|
||||||
async def get_douyin_live_video_data(self, web_rid: str) -> dict or None:
|
async def get_douyin_live_video_data(self, web_rid: str) -> Union[dict, None]:
|
||||||
print('正在获取抖音视频数据...')
|
print('正在获取抖音视频数据...')
|
||||||
try:
|
try:
|
||||||
# 构造访问链接/Construct the access link
|
# 构造访问链接/Construct the access link
|
||||||
@ -274,7 +276,7 @@ class Scraper:
|
|||||||
"""__________________________________________⬇️TikTok methods(TikTok方法)⬇️______________________________________"""
|
"""__________________________________________⬇️TikTok methods(TikTok方法)⬇️______________________________________"""
|
||||||
|
|
||||||
# 获取TikTok视频ID/Get TikTok video ID
|
# 获取TikTok视频ID/Get TikTok video ID
|
||||||
async def get_tiktok_video_id(self, original_url: str) -> str or None:
|
async def get_tiktok_video_id(self, original_url: str) -> Union[str, None]:
|
||||||
"""
|
"""
|
||||||
获取视频id
|
获取视频id
|
||||||
:param original_url: 视频链接
|
:param original_url: 视频链接
|
||||||
@ -298,7 +300,7 @@ class Scraper:
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
@retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2))
|
@retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2))
|
||||||
async def get_tiktok_video_data(self, video_id: str) -> dict or None:
|
async def get_tiktok_video_data(self, video_id: str) -> Union[dict, None]:
|
||||||
"""
|
"""
|
||||||
获取单个视频信息
|
获取单个视频信息
|
||||||
:param video_id: 视频id
|
:param video_id: 视频id
|
||||||
|
Loading…
x
Reference in New Issue
Block a user