[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[技术讨论] Shell脚本批量转换电影的下载地址教学及求助

雇佣兵
thunder://
QUFmdHA6Ly82djo2dkBmdHAxLmthbjY2LmNvbToxMjY5LyVFMyU4MCU5MDZ2JUU3JTk0JUI1JUU1JUJEJUIxd3d3LmR5MTMxLmNvbSVFMyU4MCU5MSVFOSU5QiU4NyVFNCVCRCVBMyVFNSU4NSVCNUJEJUU0JUI4JUFEJUU4JThCJUIxJUU1JThGJThDJUU1JUFEJTk3MTI4MCVFOSVBQiU5OCVFNiVCOCU4NS5ybXZiWlo=

恐龙星1
thunder://
QUFmdHA6Ly82djo2dkBmdHAxLmthbjY2LmNvbToxMjY5LyVFMyU4MCU5MDZ2JUU3JTk0JUI1JUU1JUJEJUIxd3d3LmR5MTMxLmNvbSVFMyU4MCU5MUJCQyVFRiVCQyU5QSVFNiU4MSU5MCVFOSVCRSU5OSVFNiU5OCU5RiVFNyU5MCU4M0JEJUU0JUI4JUFEJUU4JThCJUIxJUU1JThGJThDJUU1JUFEJTk3MTI4MCVFOSVBQiU5OCVFNiVCOCU4NSVFNyVBQyVBQyVFNCVCOCU4MCVFOSU5QiU4NiVFRiVCQyU5QSVFNSVBNCVCMSVFOCU5MCVCRCVFNyU5QSU4NCVFNCVCOCU5NiVFNyU5NSU4Qy5ybXZiWlo=

恐龙星2
thunder://
QUFmdHA6Ly82djo2dkBmdHAxLmthbjY2LmNvbToxMjY5LyVFMyU4MCU5MDZ2JUU3JTk0JUI1JUU1JUJEJUIxd3d3LmR5MTMxLmNvbSVFMyU4MCU5MUJCQyVFRiVCQyU5QSVFNiU4MSU5MCVFOSVCRSU5OSVFNiU5OCU5RiVFNyU5MCU4M0JEJUU0JUI4JUFEJUU4JThCJUIxJUU1JThGJThDJUU1JUFEJTk3MTI4MCVFOSVBQiU5OCVFNiVCOCU4NSVFNyVBQyVBQyVFNCVCQSU4QyVFOSU5QiU4NiVFRiVCQyU5QSVFNSVCOCVBNiVFNyVCRSVCRCVFNiU4MSU5MCVFOSVCRSU5OS5ybXZiWlo=

恐龙星3
thunder://
QUFmdHA6Ly82djo2dkBmdHAxLmthbjY2LmNvbToxMjY5LyVFMyU4MCU5MDZ2JUU3JTk0JUI1JUU1JUJEJUIxd3d3LmR5MTMxLmNvbSVFMyU4MCU5MUJCQyVFRiVCQyU5QSVFNiU4MSU5MCVFOSVCRSU5OSVFNiU5OCU5RiVFNyU5MCU4M0JEJUU0JUI4JUFEJUU4JThCJUIxJUU1JThGJThDJUU1JUFEJTk3MTI4MCVFOSVBQiU5OCVFNiVCOCU4NSVFNyVBQyVBQyVFNCVCOCU4OSVFOSU5QiU4NiVFRiVCQyU5QSVFNiU5QyU4MCVFNSU5MCU4RSVFNyU5QSU4NCVFNiU5RCU4MCVFNiU4OSU4Qi5ybXZiWlo=

恐龙星4
thunder://
QUFmdHA6Ly82djo2dkBmdHAxLmthbjY2LmNvbToxMjY5LyVFMyU4MCU5MDZ2JUU3JTk0JUI1JUU1JUJEJUIxd3d3LmR5MTMxLmNvbSVFMyU4MCU5MUJCQyVFRiVCQyU5QSVFNiU4MSU5MCVFOSVCRSU5OSVFNiU5OCU5RiVFNyU5MCU4M0JEJUU0JUI4JUFEJUU4JThCJUIxJUU1JThGJThDJUU1JUFEJTk3MTI4MCVFOSVBQiU5OCVFNiVCOCU4NSVFNyVBQyVBQyVFNSU5QiU5QiVFOSU5QiU4NiVFRiVCQyU5QSVFNyU5NCU5RiVFNSVBRCU5OCVFNCVCOSU4QiVFNiU4OCU5OC5ybXZiWlo=

恐龙星5
thunder://
QUFmdHA6Ly82djo2dkBmdHAxLmthbjY2LmNvbToxMjY5LyVFMyU4MCU5MDZ2JUU3JTk0JUI1JUU1JUJEJUIxd3d3LmR5MTMxLmNvbSVFMyU4MCU5MUJCQyVFRiVCQyU5QSVFNiU4MSU5MCVFOSVCRSU5OSVFNiU5OCU5RiVFNyU5MCU4M0JEJUU0JUI4JUFEJUU4JThCJUIxJUU1JThGJThDJUU1JUFEJTk3MTI4MCVFOSVBQiU5OCVFNiVCOCU4NSVFNyVBQyVBQyVFNCVCQSU5NCVFOSU5QiU4NiVFRiVCQyU5QSVFNiU5NiVCMCVFNyU5NCU5RiVFNSVCNyVBOCVFOSVCRSU5OS5ybXZiWlo=

恐龙星6
thunder://
QUFmdHA6Ly82djo2dkBmdHAxLmthbjY2LmNvbToxMjY5LyVFMyU4MCU5MDZ2JUU3JTk0JUI1JUU1JUJEJUIxd3d3LmR5MTMxLmNvbSVFMyU4MCU5MUJCQyVFRiVCQyU5QSVFNiU4MSU5MCVFOSVCRSU5OSVFNiU5OCU5RiVFNyU5MCU4M0JEJUU0JUI4JUFEJUU4JThCJUIxJUU1JThGJThDJUU1JUFEJTk3MTI4MCVFOSVBQiU5OCVFNiVCOCU4NSVFNyVBQyVBQyVFNSU4NSVBRCVFOSU5QiU4NiVFRiVCQyU5QSVFNCVCQyU5RiVFNSVBNCVBNyVFNyU5QSU4NCVFNyU5NCU5RiVFNSVBRCU5OCVFOCU4MCU4NS5ybXZiWlo=

407航班
thunder://
QUFmdHA6Ly82djo2dkBmdHAxLmthbjY2LmNvbToxMjY5LyVFMyU4MCU5MDZ2JUU3JTk0JUI1JUU1JUJEJUIxd3d3LmR5MTMxLmNvbSVFMyU4MCU5MTQwNyVFOCU4OCVBQSVFNyU4RiVBREJEJUU0JUI4JUFEJUU1JUFEJTk3MTI4MCVFOSVBQiU5OCVFNiVCOCU4NS5ybXZiWlo=

===========以上内容均为文件中真实内容的再现,包括空行==========================
教学:
       上方的内容是linux下用gedit文本编辑器保存的文件内容(至于文件中thunder://后为什么出现“自动换行”的效果,我也不是很清楚。但是可以肯定的是,任何一个地址从网络上拷贝下来的时候都是一整行的,并没有分行,而电影和电影地址间的空行则是我回车后得到的效果,目的是为了让结构清晰。),里面记录得是几部电影的迅雷下载地址,现在已知可以通过”echo url | base64 -d“这条命令在终端中得到电影的真实下载地址,即非迅雷要求的专用地址,以便可以在任意的软件或者是浏览器下实现文件的下载。(希望大家学会这个方法)

例如echo 第一个url | base64 -d,终端中得到的结果如下
AAftp://6v:6v@ftp1.kan66.com:1269/ ... %98%E6%B8%85.rmvbZZ

这里有两点需要格外注意:一、url——这个地址在终端中使用的时候要去掉“thunder://”部分;二、得出的结果中要去掉首尾的“AA”、“ZZ”两个特殊字符。只有这两点注意到后才可以任意的去下载了,你懂的,呵。

问题:
       大家也看到了,对于单一的一部电影地址来说,直接采用复制、粘贴的方法在终端和文件之间来回,就可以实现了,但是如果像本帖一样有多个的下载地址,那么要一个个的去复制、粘贴的话显得很笨拙。因本人的脚本功底不好,在这里请高人写一个脚本或者是程序,以自动实现这些地址的自动转换,并将结果自动保存到单独的"jg"文件中。在此谢过!
       希望大家可以学到下载的方法,也可以回复我的问题。

楼主看到18的回答了没?知道怎样查看文件编码不?

TOP

回复 17# forfiles
    终端乱码是编码的问题,你看看你的文本编码是什么。你的文本是不是在windows下保存,在linux运行的?我最近几天用不了电脑先,无法测试,抱歉
---学无止境---

TOP

回复 3# broly


    看看16楼,给楼主解答一下呗

TOP

o@O:~/桌面$ bash -vx ./dysh
#!/bin/bash

touch newfile
+ touch newfile

for i in `sed -n '/thunder/{n;p}' dy`
    do
            echo $i | base64 -d>>newfile
    done
sed -n '/thunder/{n;p}' dy
++ sed -n '/thunder/{n;p}' dy

sed -i 's/AA//g;s/ZZ/\n/g' newfile
+ sed -i 's/AA//g;s/ZZ/\n/g' newfile
o@O:~/桌面$


你去下载4楼的附件测试一下就知道了  
========================================================
现在还有一个奇怪的现象,我又制作了另一个dy文件,然后用bash -vx ./dysh的方式运行之,发现竟然可以解析出正确的下载地址,不过终端中的
提示内容可谓是乱七八糟。
后来制作的文件我给你也上传一份,你可以和四楼的内容进行一下比较,看看其异同。
[attach]5546[/attach]

TOP

回复 14# hacker85


非常好,能否这样执行一下,把过程贴出来看看?
  1. bash -vx test.sh
复制代码

TOP

回复 13# forfiles


    这根本就不是权限的问题   如你说得那样做了之后还是收获一个空的newfile文件而已  而终端上也没有任何的提示……

TOP

回复 12# hacker85


    昂,那就等你在Linux下的时候再测试吧。

TOP

回复 11# forfiles


    四楼有文件下载,你可试一下 我现在没有在linux下

TOP

回复 10# hacker85


如果直接复制粘贴3楼的代码,不做任何修改,这样执行有问题吗?
  1. chmod u+x test.sh
  2. ./test.sh
复制代码

TOP

回复 9# forfiles

o@O:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2012-02-24 21:14 /bin/sh -> dash
o@O:~$

TOP

回复 4# hacker85


你运行一下这个命令,把结果贴出来看看:
  1. ls -l /bin/sh
复制代码

TOP

回复 7# Demon


    恩哼,这回好用了。
再追问几个问题不知可以不:
1、代码运行后得出来的结果是各个电影的下载地址以回车换行符为界,一段一段的排列下去,如同:
ftp://6v:6v@ftp1.kan66.com:1269/ ... AB%98%E6%B8%85.rmvb
ftp://6v:6v@ftp1.kan66.com:1269/ ... B8%96%E7%95%8C.rmvb
……
这样就不便于知道哪个地址是哪部电影的,所以能不能如同四楼附件(电影文件的原文件)中的那种结构来实现jg文件呢?即
电影1
地址1
电影2
地址2
……

2、地址转换目的是为了能下载之。这里涉及到两个问题——一、我在linux上一直没有找到比较好的下载软件,尤其是对这种ftp下载地址的(对于种子文件下载形式的我一般用ktorrent,不过也不怎么好用),所以想请问你在用哪个软件,可否推荐一下。二、在你推荐的软件的基础上,如何能将这些文件的下载自动运行起来?

我目前在你这个代码运行后,就到了ftp的下载地址,然后去一个个的复制、粘贴到浏览器的地址栏中去,然后再一个个的点击保存……(不知道今天这是怎么了,有的文件可以下载成功,有的则根本不可以下载,有的虽然下载了,但是却是0kb,不过这不应该是本帖讨论的内容)。

TOP

回复  Demon


    哇噢   这个代码我还是头一次看到过
这个是perl语言程序吧?
代码中的dy、jg有大小 ...
hacker85 发表于 2012-7-22 20:57

代码有部分被吃掉了,你下载附件吧。

TOP

本帖最后由 hacker85 于 2012-7-22 21:16 编辑

回复 5# Demon


    哇噢   这个代码我还是头一次看到过
这个是perl语言程序吧?
代码中的dy、jg有大小写之分吗?
天,我不会用这个程序,可以告诉我怎么运行之吗?

我是把代码复制到桌面上的一个文本文件中了,保存成dyperl.pl名字
然后在终端里找到文件的位置后,运行perl dyperl.pl
这个时候dy、jg文件也和dyperl在一个目录下。

其显示的结果为:
Not enough arguments for MIME::Base64::decode_base64 at dyperl line 12, near "()"
Execution of dyperl aborted due to compilation errors.

TOP

返回列表