Chenge type hinting

This commit is contained in:
Evil0ctal 2022-12-04 18:46:44 -08:00 committed by GitHub
parent 636fea0720
commit fcef192754
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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