From f14a1fee2ab9f6029dad60c0499fe530a80dd097 Mon Sep 17 00:00:00 2001 From: frxz751113 <156018267+frxz751113@users.noreply.github.com> Date: Thu, 29 Aug 2024 15:01:52 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E9=85=92=E5=BA=97=E6=BA=90.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- py/酒店源.py | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/py/酒店源.py b/py/酒店源.py index 854c837..4576bb4 100644 --- a/py/酒店源.py +++ b/py/酒店源.py @@ -357,18 +357,22 @@ for url in urls: valid_urls.append(result) for url in valid_urls: print(url) - # 遍历网址列表,获取JSON文件并解析 + # 遍历有效的URL列表,这些URL指向包含JSON数据的资源 for url in valid_urls: try: - # 发送GET请求获取JSON文件,设置超时时间为0.5秒 - ip_start_index = url.find("//") + 2 - ip_dot_start = url.find(".") + 1 - ip_index_second = url.find("/", ip_dot_start) - base_url = url[:ip_start_index] # http:// or https:// - ip_address = url[ip_start_index:ip_index_second] + # 从当前URL中提取基础URL和IP地址 + # 假设URL格式为 http://或https://后跟IP地址,然后是其他部分 + ip_start_index = url.find("//") + 2 # 找到"//"后的第一个字符的索引 + ip_dot_start = url.find(".") + 1 # 找到第一个"."后的第一个字符的索引 + ip_index_second = url.find("/", ip_dot_start) # 从IP地址后的第一个"/"开始 + base_url = url[:ip_start_index] # 提取基础URL部分,如http://或https:// + ip_address = url[ip_start_index:ip_index_second] # 提取IP地址部分 + # 构造一个新的基础URL,用于后续拼接 url_x = f"{base_url}{ip_address}" + # 这里似乎是一个错误,json_url应该使用url_x,但代码中使用了原始的url json_url = f"{url}" - response = requests.get(json_url, timeout=3) #/////////////// + response = requests.get(json_url, timeout=3) # 发送GET请求到json_url,获取JSON格式的数据,设置超时时间为3秒 + # 将响应的内容解析为JSON格式 json_data = response.json() try: # 解析JSON文件,获取name和url字段 @@ -500,22 +504,29 @@ for url in urls: continue except: continue +# 初始化一个空列表,用于存储频道信息 channels = [] +# 遍历结果列表,每个结果代表一行数据 for result in results: + # 去除每行数据首尾的空白字符 line = result.strip() try: - # 尝试分割字符串,如果格式不正确则引发 ValueError - channel_name, channel_url = line.split(',', 1) # 使用逗号分割一次 + # 尝试使用逗号分割字符串,分割一次,返回一个包含两部分的元组 + channel_name, channel_url = line.split(',', 1) + # 如果分割成功,将频道名称和频道URL作为元组添加到channels列表中 channels.append((channel_name, channel_url)) except ValueError: - # 如果发生 ValueError 则打印错误信息并跳过该行 + # 如果分割失败,即数据格式不正确,打印错误信息并跳过当前行 print(f"跳过无法解析的行: {line}") -# 打开文本文件以追加的形式写入 +# 使用with语句打开"iptv.txt"文件,以追加模式'a'写入,指定文件编码为'utf-8' with open("iptv.txt", 'a', encoding='utf-8') as file: + # 遍历channels列表,列表中的每个元素都是一个包含频道名称和URL的元组 for channel_name, channel_url in channels: + # 将频道名称和URL写入文件,以逗号分隔,后跟换行符 file.write(f"{channel_name},{channel_url}\n") -print("频道列表文件iptv.txt追加写入成功!") +# 打印成功信息,告知用户频道列表已成功追加写入到文件中 +print("频道列表文件iptv.txt追加写入成功!") ######################################################################################################################