低端影视采集解密mp4发布

本文介绍了使用Python的requests库和正则表达式从动漫网站抓取图片、地址、名称等信息,然后解析详细页面获取视频内容,最后将数据入库的脚本过程。
摘要由CSDN通过智能技术生成

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('---')

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值