Update 酒店源.py

This commit is contained in:
frxz751113
2024-08-29 15:01:52 +08:00
committed by GitHub
parent ca0e07dc00
commit f14a1fee2a
+24 -13
View File
@@ -357,18 +357,22 @@ for url in urls:
valid_urls.append(result) valid_urls.append(result)
for url in valid_urls: for url in valid_urls:
print(url) print(url)
# 遍历网址列表,获取JSON文件并解析 # 遍历有效的URL列表,这些URL指向包含JSON数据的资源
for url in valid_urls: for url in valid_urls:
try: try:
# 发送GET请求获取JSON文件,设置超时时间为0.5秒 # 从当前URL中提取基础URL和IP地址
ip_start_index = url.find("//") + 2 # 假设URL格式为 http://或https://后跟IP地址,然后是其他部分
ip_dot_start = url.find(".") + 1 ip_start_index = url.find("//") + 2 # 找到"//"后的第一个字符的索引
ip_index_second = url.find("/", ip_dot_start) ip_dot_start = url.find(".") + 1 # 找到第一个"."后的第一个字符的索引
base_url = url[:ip_start_index] # http:// or https:// ip_index_second = url.find("/", ip_dot_start) # 从IP地址后的第一个"/"开始
ip_address = url[ip_start_index:ip_index_second] 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}" url_x = f"{base_url}{ip_address}"
# 这里似乎是一个错误,json_url应该使用url_x,但代码中使用了原始的url
json_url = f"{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() json_data = response.json()
try: try:
# 解析JSON文件,获取name和url字段 # 解析JSON文件,获取name和url字段
@@ -500,22 +504,29 @@ for url in urls:
continue continue
except: except:
continue continue
# 初始化一个空列表,用于存储频道信息
channels = [] channels = []
# 遍历结果列表,每个结果代表一行数据
for result in results: for result in results:
# 去除每行数据首尾的空白字符
line = result.strip() line = result.strip()
try: try:
# 尝试分割字符串,如果格式不正确则引发 ValueError # 尝试使用逗号分割字符串,分割一次,返回一个包含两部分的元组
channel_name, channel_url = line.split(',', 1) # 使用逗号分割一次 channel_name, channel_url = line.split(',', 1)
# 如果分割成功,将频道名称和频道URL作为元组添加到channels列表中
channels.append((channel_name, channel_url)) channels.append((channel_name, channel_url))
except ValueError: except ValueError:
# 如果发生 ValueError 则打印错误信息并跳过 # 如果分割失败,即数据格式不正确,打印错误信息并跳过当前
print(f"跳过无法解析的行: {line}") print(f"跳过无法解析的行: {line}")
# 打开文本文件以追加的形式写入 # 使用with语句打开"iptv.txt"文件以追加模式'a'写入,指定文件编码为'utf-8'
with open("iptv.txt", 'a', encoding='utf-8') as file: with open("iptv.txt", 'a', encoding='utf-8') as file:
# 遍历channels列表,列表中的每个元素都是一个包含频道名称和URL的元组
for channel_name, channel_url in channels: for channel_name, channel_url in channels:
# 将频道名称和URL写入文件,以逗号分隔,后跟换行符
file.write(f"{channel_name},{channel_url}\n") file.write(f"{channel_name},{channel_url}\n")
print("频道列表文件iptv.txt追加写入成功!")
# 打印成功信息,告知用户频道列表已成功追加写入到文件中
print("频道列表文件iptv.txt追加写入成功!")
###################################################################################################################### ######################################################################################################################