吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 105|回复: 7
上一主题 下一主题
收起左侧

[资源求助] 蓝奏云批量下载txt的软件或方法

[复制链接]
跳转到指定楼层
楼主
oju 发表于 2024-9-19 17:08 回帖奖励
25吾爱币
想在蓝奏云下载小说,但是点开链接后里面不是压缩吧,是成百上千个散装txt,在论坛搜了一下批量下载软件都不成功。再次寻求大佬们。
(基本都识别不到链接内容。最接近成功的一次是lanzou-gui-win64-v0.6.9,能识别链接内容,但下载时提示Error: list index out of range


这个是我想下载的链接之一
https://www.lanzov.com/b00l10ptud

还有wwf.lanzout.com/……   wwk.lanzoui.com/…… 之类的链接,长得不太一样,但因为里面的内容不太合适,就先不放出来了

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

沙发
zhujs47 发表于 2024-9-20 00:00
本帖最后由 zhujs47 于 2024-9-20 00:01 编辑

有密码吗
3#
hebeijianke 发表于 2024-9-20 08:37
[Python] 纯文本查看 复制代码
import requests
import re
from bs4 import BeautifulSoup
import time
import threading

# 定义全局变量
base_url = None
file_url = None
data_list = []


def get_headers(referer=None):
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:130.0) Gecko/20100101 Firefox/130.0",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"
    }
    if referer:
        headers["Referer"] = referer
    return headers


# 定义获取文件URL的函数
def get_file_url(url):
    global base_url, file_url
    try:
        response = requests.get(url, headers=get_headers())
        response.raise_for_status()  # 检查请求是否成功
        bs = BeautifulSoup(response.text, 'lxml')
        title = bs.title.text
        file_url_match = re.findall(r"url : '(.*?)',", str(bs))
        file_url = base_url + file_url_match[0] if file_url_match else None
        return bs, title, file_url
    except requests.RequestException as e:
        print(f"获取文件链接出错: {e}")
        return None, None, None

    # 定义获取变量的函数


def get_variables(response_text):
    pattern = r"var\s+(\w+)\s*=\s*'([^']*)';"
    return dict(re.findall(pattern, response_text))


# 定义下载文件的函数
def download_file(url, name):
    try:
        response = requests.get(url, headers=get_headers())
        response.raise_for_status()  # 检查请求是否成功
        with open(name, 'wb') as f:
            f.write(response.content)
        print(f'{name} 下载完成')
    except requests.RequestException as e:
        print(f"下载文件出错: {e}")


# 定义处理数据的函数
def process_data(item):
    name = item['name_all']
    detail_url = f'{base_url}/{item["id"]}'
    try:
        response = requests.get(detail_url, headers=get_headers())
        response.raise_for_status()  # 检查请求是否成功
        response_bs = BeautifulSoup(response.text, 'lxml')
        iframe = response_bs.find('iframe', class_='n_downlink')

        if iframe:
            src_value = base_url + iframe['src']
            response = requests.get(src_value, headers=get_headers())
            response.raise_for_status()
            response.encoding = 'utf-8'
            response_text = response.text.replace('=1;', "= '1';")

            url_match = re.findall(r"url : '(.*?)',", response_text)
            if url_match:
                url = base_url + url_match[0]
                variables_update = get_variables(response_text)
                globals().update(variables_update)  # 更新全局变量

                data_match = re.findall(r"data : ({.*?}),", response_text)
                if data_match:
                    data = eval(data_match[0].replace(' ', ''))
                    response = requests.post(url, headers=get_headers(src_value), data=data)
                    response.raise_for_status()
                    response_json = response.json()
                    print(response_json)
                    download_url = response_json['dom'] + '/file/' + response_json['url']
                    download_file(download_url, name)
    except requests.RequestException as e:
        print(f"处理 {name} 时出错: {e}")


# 定义获取数据的函数
def get_data():
    global data_list
    for pgs in range(1, 10):
        data_match = re.findall(r"data : ({.*?}),", str(bs).replace('\n', ''))
        if data_match:
            data = eval(data_match[0].replace('\t', '').replace(' ', ''))
            time.sleep(1)
            response = requests.post(file_url, headers=get_headers(file_url), data=data)
            response.raise_for_status()
            response_json = response.json()
            if response_json['info'] == '没有了':
                break
            data_list.extend(response_json['text'])


# 定义下载线程
class DownloadThread(threading.Thread):
    def __init__(self, item):
        threading.Thread.__init__(self)
        self.item = item

    def run(self):
        process_data(self.item)


# 主程序
if __name__ == "__main__":
    url = 'https://www.lanzov.com/b00l10ptud'
    base_url = re.search(r"(https?://[^/]+)", url).group(1)

    bs, title, file_url = get_file_url(url)

    if bs is not None:
        variables = get_variables(str(bs.findAll('script')[2].string.split('function')[0]))
        globals().update(variables)  # 使用 update 更新全局变量

        get_data()  # 获取数据

        # 创建并启动下载线程
        threads = []
        for item in data_list:
            thread = DownloadThread(item)
            thread.start()
            threads.append(thread)

        # 等待所有线程完成
        for thread in threads:
            thread.join()
        print('所有文件下载完成')
4#
小哲网络 发表于 2024-9-20 09:39
一键转存至 “蓝奏云·优享版”/即可实现批量下载
5#
 楼主| oju 发表于 2024-9-20 10:05 |楼主

有的有,有的无。比如一楼我放的那个链接就是无密码的,点开就能看到一堆txt文件
6#
 楼主| oju 发表于 2024-9-20 11:10 |楼主
hebeijianke 发表于 2024-9-20 08:37
[mw_shl_code=python,true]
import requests
import re

辛苦了,只是python对我来说太难了,我现阶段还在学习脚本阶段
7#
 楼主| oju 发表于 2024-9-20 11:11 |楼主
在油猴上看到一个批量下载的脚本,但是我一直没收到下载弹窗
[Asm] 纯文本查看 复制代码
// ==UserScript==
// [url=home.php?mod=space&uid=170990]@name[/url]         蓝奏云批量下载(eg: 多卷小说)
// [url=home.php?mod=space&uid=467642]@namespace[/url]    http://tampermonkey.net/
// [url=home.php?mod=space&uid=1248337]@version[/url]      0.1
// @description  自用,需要弹窗等权限以及微调代码,不会用不要下载
// [url=home.php?mod=space&uid=686208]@AuThor[/url]       You
// [url=home.php?mod=space&uid=195849]@match[/url]        *://*.lanzoux.com/*
// @match        *://*.lanzous.com/*
// @match        *://*.lanzov.com/*
// [url=home.php?mod=space&uid=609072]@grant[/url]        none
// @downloadURL https://update.greasyfork.org/scripts/423821/%E8%93%9D%E5%A5%8F%E4%BA%91%E6%89%B9%E9%87%8F%E4%B8%8B%E8%BD%BD%28eg%3A%20%E5%A4%9A%E5%8D%B7%E5%B0%8F%E8%AF%B4%29.user.js
// @updateURL https://update.greasyfork.org/scripts/423821/%E8%93%9D%E5%A5%8F%E4%BA%91%E6%89%B9%E9%87%8F%E4%B8%8B%E8%BD%BD%28eg%3A%20%E5%A4%9A%E5%8D%B7%E5%B0%8F%E8%AF%B4%29.meta.js
// ==/UserScript==

(function() {
    'use strict';
//window.onload=function(){
function aaa(){
//main
if ($('.txt').length==0){
var a=$(".rets")[0]
var a2=document.createElement("a");
a.appendChild(a2)
a2.innerHTML='点击此处将此页文档全部下载(默认1500毫秒执行一次,可自行更改)'
a2.onclick=function(){
var nu=$('#infos').find('a').length
for(let i=0; i<nu; i++){
// $(".cover")[i].click()
setTimeout(function(){$('#infos').find('a')[i].click() }, i*2500)}}}

//dl
setTimeout(function(){if ($('.txt').length!=0){$('.txt')[0].click(); setTimeout(function(){window.close()},1000) }}, 1500)

}
setTimeout(aaa,1500)
    // Your code here...
})();
8#
zhujs47 发表于 2024-9-21 00:36
写好了,带图形界面的https://zhujingshuo.lanzoue.com/iRsx92afo75e解压后直接运行
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-9-21 07:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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