< 返回新闻公告列表

PHP采集91视频配合Aria2自动下载并上传OneDrive

发布时间:2023-8-23 18:22:20    来源: 纵横数据

一、前言

网上很多是Python采集而且视频网站前段时间做了一些防护手段,导致很多源码不能使用。在浏览GitHub的时无意中发现一个用PHP写的采集程序,而且还在更新,作者看来也是一位老司机。

必读文章《使用Aria2+AriaNg+oneindex+onedrive建立离线BT下载/在线播放》

二、准备工作

1、一台国外服务器,硬盘没有要求,但是流量一定要大(建议10T起步);

2、注:不要在口碑不好的商家购买;

3、一个5Tb的OneDrive帐号(百度搜一下,可以申请到。建议不要存储重要资料);

4、具备一定的Linux知识

三、操作步骤

注:以下教程基于CentOS7操作,使用其它系统出现问题请自行解决。

1、服务器基本操作:

1.1 “升级”

1
yum -y update

这一步是我个人习惯性操作,可以略过。

1.2 安装Screen

1
yum -y install screen

连接国外服务器可能会出现网络“波动”情况,使用Screen命令可以避免连接断开导致半途而废。

screen常用参数

screen -S yourname  新建一个叫yourname的session;例:screen -S porn

screen -ls  列出当前所有的session;

screen -r yourname  回到yourname这个session;例:screen -r pron

screen -d yourname  远程detach yourname这个session;例:screen -d pron

2、编译安装Aria2

一定要用源码编译安装后再使用网上的一键脚本

2.1 安装编译所需环境

1
yum -y install gcc-c++ gcc

2.2 下载Aria2源码

这里使用screen 新建一个session,因为编译所需时间有点长。

1
2
3
4
5
6
screen -S aria
git clone https://github.com/aria2/aria2.git
cd aria2
autoreconf -i
./configure
make

等待编译完成之后

1
2
3
cd src
cp aria2c /usr/local/bin
aria2c -v

出现下图所示,表示已正常安装。

(原创)PHP采集91视频配合Aria2自动下载并上传OneDrive

安装完之后还要写aria2的配置文件还开机启动之类的,这里偷个懒,我使用的是一键脚本

下载安装:

1
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh

(原创)PHP采集91视频配合Aria2自动下载并上传OneDrive

选择1进行安装

(原创)PHP采集91视频配合Aria2自动下载并上传OneDrive

在配置文件/root/.aria2/aria2.conf中把密码注释掉,在rpc-secret选项前加个#号保存,然后运行脚本选择6,重启aria2

3、php采集源码地址:

1
https://github.com/zzjzz9266a/91porn_php

把源码Git 到服务器中,使用-b 参数指定aria2 分支(源码有php、php+aria2、docker三个版分支,详细情况请在GitHub源码页查看。)

1
2
cd /home
git clone -b aria2 https://github.com/zzjzz9266a/91porn_php

基本用法

建议在Screen 模式下操作

1、91porn.php是爬取首页的视频,直接运行即可;

用法:我上面把源码git到home目录,所要切换到源码目录,然后运行。

cd /home/91porn_php
php 91porn.php

2、91all.php是爬取列表页的,例如“收藏最多”、“本月最热”等等,要别的列表的话可以去找对应的url

listPage("http://91porn.com/v.php?next=watch&viewtype=basic"); //全部视频
//listPage("http://91porn.com/v.php?category=top&viewtype=basic");//本月最热
// listPage("http://91porn.com/v.php?category=mf&viewtype=basic");//收藏最多
// listPage("http://91porn.com/v.php?category=md&viewtype=basic");//本月讨论

爬取页数可以自行更改,默认到10页;

$maxPage = 10; //更改爬取页数

3、下载完成后就可以到videos目录下找到视频文件了

4、下载单个视频文件

运行detailPage.php文件,将视频网页的地址传入

php detailPage.php http://91porn.com/view_video.php?viewkey=042a30e56c9cd20b075f

源码运行需要PHP>=5.6、nodejs

这里我们还可以再偷个懒,使用BT面板进行安装。

1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

安装完成之后登录后台在软件商店中进行安装PHP和nodejs(nodejs版本没有限制,我选择的是最新的V12.2.0;php安装的是7.2)

删除php配置文件中的禁用函数 exec、shell_exec

操作到这里,建议重启一下服务器。

四、后续操作

上述步骤操作完,就能把视频下载到你的服务器中,不过要自动上传到OneDrive,还需下面的操作。

1、Onedrive 授权

1
wget --no-check-certificate -q -O /tmp/OneDrive.sh "https://raw.githubusercontent.com/weiyidu/OneDrive/master/OneDrive.sh" && chmod +x /tmp/OneDrive.sh && bash /tmp/OneDrive.sh

1.1 运行onedrive -a

???OneDrive for Business in Linux???

1.2 将上图返回的网址复制到浏览器中打开

1.3 登陆你的OneDrive for Business账号

1.4 登陆成功后复制地址栏中的地址,并提取code的字段(code= 后面到 & 前面,这一段)

1.5 粘贴至终端,并敲回车键

 

2、下载自动上传脚本

1
wget --no-check-certificate -q -O /root/autoupload.sh "https://raw.githubusercontent.com/weiyidu/OneDrive/master/autoupload_new.sh" && chmod +x /root/autoupload.sh

脚本源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/bash
 
GID="$1";
FileNum="$2";
File="$3";
MaxSize="15728640"
RemoteDIR="";  #上传到Onedrive的路径,默认为根目录,如果要上传到指定目录,方法看文章最后面。
LocalDIR="/home/";  #Aria2下载目录,记得最后面加上/
 
if [[ -z $(echo "$FileNum" |grep -o '[0-9]*' |head -n1) ]]; then FileNum='0'; fi
if [[ "$FileNum" -le '0' ]]; then exit 0; fi
if [[ "$#" != '3' ]]; then exit 0; fi
 
function LoadFile(){
  IFS_BAK=$IFS
  IFS=$'n'
  if [[ ! -d "$LocalDIR" ]]; then return; fi
  if [[ -e "$File" ]]; then
    if [[ $(dirname "$File") == $(readlink -f $LocalDIR) ]]; then
      ONEDRIVE="onedrive";
    else
      ONEDRIVE="onedrive-d";
    fi
    FileLoad="${File/#$LocalDIR}"
    while true
      do
        if [[ "$FileLoad" == '/' ]]; then return; fi
        echo "$FileLoad" |grep -q '/';
        if [[ "$?" == "0" ]]; then
          FileLoad=$(dirname "$FileLoad");
        else
          break;
        fi;
      done;
    if [[ "$FileLoad" == "$LocalDIR" ]]; then return; fi
    if [[ -n "$RemoteDIR" ]]; then
      Option=" -f $RemoteDIR";
    else
      Option="";
    fi
    EXEC="$(command -v $ONEDRIVE)";
    if [[ -z "$EXEC" ]]; then return; fi
    cd "$LocalDIR";
    if [[ -e "$FileLoad" ]]; then
      ItemSize=$(du -s "$FileLoad" |cut -f1 |grep -o '[0-9]*' |head -n1)
      if [[ -z "$ItemSize" ]]; then return; fi
      if [[ "$ItemSize" -ge "$MaxSize" ]]; then
        echo -ne "33[33m$File 33[0mtoo large to spik.n";
        return;
      fi
      eval "${EXEC}${Option}" '"${FileLoad}"';
      if [[ $? == '0' ]]; then
        rm -rf "$FileLoad";
      fi
    fi
  fi
  IFS=$IFS_BAK
}
LoadFile;

修改源码中的LocalDIR,这里写你的php采集视频下载目录,比如我的就是LocalDIR=/home/91porn_php/videos/

3、修改aria2.conf

打开配置文件修改下载目录,修改dir目录与上面LocalDIR一样。

并在最后一行添加 on-download-complete=/root/autoupload.sh

然后重启Aria2

教程到此结束。

效果:

另外一种玩法:

真实物理电脑中安装SS客户端,《Centos 7安装Proxychains实现Linux 代理》使用SS自带socks5,在虚拟机中操作。


纵横数据面向全国提供自建BGP云计算中心,跨境数据中心运营,AI-GPU大数据中心运营,IOT物联网机房运营,5G移动互联机房建设,海外设备集采上架,边缘云PCDN节点汇聚,私有云建设,动态静态IP租用,机柜大带宽,高防CDN解决方案,物联系统集成,软件开发外包等业务。

官网:www.155cloud.com  联系方式:QQ:576791973 1590875265  手机:19906048602 

19906048602
19906048602 19906048602
返回顶部
返回顶部 返回顶部