''' 不知道为什么,这样写不起作用。修改了源代码 # 查看yt_dlp的安装路径 python3 -c "import yt_dlp; print(yt_dlp.__file__)" 进入到 extractor/pornhub.py 文件,找到 _real_extract 函数 在return语句之前增加代码: # 提取收藏次数(favoritesCounter 的内容) favorites_raw = self._search_regex( r'\s*([\dKkMm,. ]+)\s*', webpage, 'favorites count', fatal=False) # 如果找到收藏次数,则进行解析和单位转换 favorites_count = '0' if favorites_raw: # 清理空格、换行,并解析数字和单位 favorites_count = favorites_raw.strip().replace(',', '') 并在return中增加 'favorite_count': favorites_count, ''' from yt_dlp.extractor.pornhub import PornHubIE import re # 不起作用,还是修改了源码 class CustomPornHubIE(PornHubIE): def _real_extract(self, url): # 打印当前解析的 URL self.to_screen(f"调试: 处理的 URL 是: {url}") # 调用父类的提取逻辑 original_data = super()._real_extract(url) # 下载网页内容 webpage = self._download_webpage(url, url) self.to_screen(f"调试: 收藏原始内容: {webpage}") # 提取收藏次数(favoritesCounter 的内容) favorites_raw = self._search_regex( r'\s*([\dKkMm,. ]+)\s*', webpage, 'favorites count', fatal=False) # 调试:打印收藏原始内容 self.to_screen(f"调试: 收藏原始内容: {favorites_raw}") self.to_screen(f"调试: 收藏原始内容: {original_data}") # 如果找到收藏次数,则进行解析和单位转换 if favorites_raw: # 清理空格、换行,并解析数字和单位 favorites_cleaned = favorites_raw.strip().replace(',', '') favorites_count = self._convert_to_number(favorites_cleaned) original_data['favorites_count'] = favorites_count else: original_data['favorites_count'] = 0 return original_data def _convert_to_number(self, value): """ 将字符串解析为实际数字,支持 K(千)和 M(百万)等单位 """ match = re.match(r'^([\d.]+)([KkMm]?)$', value) if not match: return None number = float(match.group(1)) unit = match.group(2).upper() if unit == 'K': # 千 return int(number * 1000) elif unit == 'M': # 百万 return int(number * 1000000) return int(number) # 无单位,直接返回数字