import requests
import re
import time
import urllib.parse
url = 'https://ddys.art/category/anime/page/2/'
# 发送 GET 请求
response = requests.get(url)
# 定义正则表达式
image_regex = r'style="background-image: url\((.*?)\);">'
address_regex = r'<h2 class="post-box-title"><a href="(.*?)" rel="bookmark">'
name_regex = r'<h2 class="post-box-title"><a href=".*?" rel="bookmark">(.*?)</a></h2>'
intro_regex = r'</p>简介: (.*?)</div>'
src1_regex = r'"src1":"(.*?)"'
# 使用正则表达式提取信息
image_urls = re.findall(image_regex, response.text)
addresses = re.findall(address_regex, response.text)
names = re.findall(name_regex, response.text)
# 打印匹配结果
for image_url, address, name in zip(image_urls, addresses, names):
print('图片URL:', image_url)
print('提取地址:', address)
print('名称:', name)
print('---')
# 发送 GET 请求以获取详情
try:
detail_response = requests.get(address)
intro_matches = re.findall(intro_regex, detail_response.text)
if intro_matches:
for intro_match in intro_matches:
intro_text = intro_match.strip()
print('简介:', intro_text)
print('---')
# 提取多个 "src1" 的内容
src1_matches = re.findall(src1_regex, detail_response.text)
if src1_matches:
for episode_number, src1_content in enumerate(src1_matches, start=1):
print('集数:', episode_number)
print('"加密内容"', src1_content)
print('---')
# 使用请求头发送带有视频地址的 GET 请求
video_url = f"https://ddys.art/getvddr/video?id={src1_content}&dim=1080P&type=mix"
headers = {
'Access-Control-Allow-Origin': 'https://ddys.art',
'Referer': 'https://ddys.art/love-flops/?ep=1'
}
video_response = requests.get(video_url, headers=headers)
if video_response.status_code == 200:
video_address = video_response.json()['url']
print('集数和视频地址:', f"{episode_number}${video_address}")
print('---')
# 构建 GET 请求的查询参数
payload = {
'vod_name': name,
'type_name': '分类名称',
'type_id': 20,
'vod_play_from': 'ddys',
'vod_play_url': f"{episode_number}${video_address}",
'vod_blurb': intro_text,
'vod_pic': image_url,
'vod_content': intro_text
}
# 将查询参数编码并附加到 URL 上
query_string = urllib.parse.urlencode(payload)
get_url = f"http://苹果cms/api.php/receive/vod?pass=NX6GZB3E7N6A4VNL&{query_string}"
# 发送 GET 请求到指定的 URL
get_response = requests.get(get_url)
if get_response.status_code == 200:
response_json = get_response.json()
if response_json['code'] == 1:
print('入库成功')
else:
print('入库失败:', response_json['err'])
print('---')
else:
print('GET请求失败')
print('---')
time.sleep(1.5) # 在下次请求之前延迟1.5秒
else:
print('无法获取视频URL')
print('---')
time.sleep(1.5)
except Exception as e:
print('发生异常:', str(e))
print('获取失败')
print('---')