吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1262|回复: 0
收起左侧

[求助] 关于绕过cloudflare时的问题

[复制链接]
roumn 发表于 2023-9-3 21:06
在请求低端影视 - 超清在线视频站 (ddys.pro)时,想使用python调用idm下载视频,发现是cloudflare,然后使用cloudscrper库能访问到第一层主页面,然后进入每一个视频页面,同样的方法请求可以拿到视频下载地址的时候返回{"err":"error3.4"},两次请求用的都是cloudscrper库绕过,但是第二次就不成功,换了curl_cffi库的request请求也返回{"err":"error3.4"},怎么解决

import json
from lxml import etree
from subprocess import call
import cloudscraper


def parse(url):
    scraper = cloudscraper.create_scraper(
        browser={
            'browser': 'chrome',
            'platform': 'android',
            'desktop': False
        }
    )
    response = scraper.get(url)
    tree = etree.HTML(response.text)
    hrefs = tree.xpath('.//main/div[2]/article/div/div[2]/h2/a/@href')
    for href in hrefs:
        parse_second(href)
        break

def parse_second(url):
    scraper = cloudscraper.create_scraper(
        browser={
            'browser': 'chrome',
            'platform': 'android',
            'desktop': False
        }
    )
    response = scraper.get(url)
    tree = etree.HTML(response.text)
    url1 = tree.xpath("//script[@class='wp-playlist-script']/text()")[0]
    date = json.loads(url1)
    links = date["tracks"]
    for link in links:
        src = link['src1']
        name = link['src0'].split('/')[-1]
        parse_third(src, name)
        break
    # if scraper:
    #     scraper.close()


def parse_third(src, name):
    url = f"https://ddys.pro/getvddr3/video?id={src}&type=json"
    scraper = cloudscraper.create_scraper(
        browser={
            'browser': 'chrome',
            'platform': 'android',
            'desktop': False
        }
    )
    response = scraper.get(url)
    print(response.text)
    # parsed_data = json.loads(response.text)
    # url = parsed_data["url"]
    # idmDownloader(url, name)


def idmDownloader(task_url, file_name):
    """
    IDM下载器
    :param task_url: 下载任务地址
    :param folder_path: 存放文件夹
    :param file_name: 文件名
    :return:
    """
    # IDM安装目录
    IDM = "F:\\Internet Download Manager\\IDMan.exe"
    # 下载地址
    folder_path = 'C:\\Users\\mark\\Desktop\\dd'
    # 将任务添加至队列
    call([IDM, '/d', task_url, '/p', folder_path, '/f', file_name, '/n', '/a'])
    # 开始任务队列
    call([IDM, '/s'])


if __name__ == '__main__':
    url = 'https://ddys.pro/'
    parse(url)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-23 06:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表