分类
未分类

Chinese Amatuer Porn Dump Guide.18.06.12

1 准备篇

距离上次在这个破地方写东西好像已经三个月还是四个月过去了,这段时间发生了很多事,我可没时间一一写下来,将全部放附录里面。今天的主题是拖国产A片。众所周知91porn是个好去处,但91porn的片子要么清晰度感人,要么只是那些所谓“大神”完整视频的预览版。其实还有一个下国产A片的去处,叫做1024核工厂,地址总是在变,所以最好google下。

这个论坛里面的片子都是分辨率相当高的,如果原版视频有1080p格式那么这里也差不多有。只不过它所有片子都放在收费网盘里,最后还是需要买一个网盘帐号的。这是这篇“教程”里唯一需要花钱的地方。如果想拖下来这个破站里面所有片子的话,那目测要花好几百的样子(因为每个版主用的网盘都不一样)。

HOLD UP!就算你准备拖它全站,也不需要花几百买帐号。有个叫“号中号”的帐号出租网站可以大幅度降低购买网盘帐号的成本。在里面搜索需要的网盘,然后选那个最便宜的套餐即可(但需要选那些提供帐号密码的,哪些需要它的浏览器才能用的就基本上不用考虑了,因为接下来我们还要提取cookies)。不用管它只能用五个小时,因为你用PINGAS想想就知道它根本没有办法限制这个号只能用五个小时,因为那样就意味着五个小时之后它需要一套自动化系统来改密码,而它压根就没有这样的系统。另外可能还存在一个号同时给多人用的情况,所以它一般来说几天才改一次密码。再说了这个平台上的价格大多都是瞎激霸定的,同理这些网盘本身也是瞎激霸搞的。它们都用的是PHPDisk网盘程序,你去持久化下cookies就能用到它们服务器重启。当然还有比持久化cookies更方便的方法——

2 下载篇(?)

我们都知道chrome可以将某个链接输出成curl形式,其实firefox也可以,在开发人员工具(F12)的网络一栏,找到网盘的请求(有的网盘第一个请求就能获取下载链接,有的还有另外一个请求,仔细看)右键复制->复制为cURL,就可以在shell脚本里用了。以风云网盘为例,它输出的差不多是这个样子:

curl "$1" \
-H "Host: www.76fengyun.com" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0" \
-H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \
-H "Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2" \
--compressed \
-H "Cookie:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "DNT: 1" \
-H "Connection: keep-alive" \
-H "Upgrade-Insecure-Requests: 1" \
-H "Cache-Control: max-age=0"

然后我们在后面加上

| grep -Eo "a href=\"http://vipdown[0-9].*\" style=\" background-color:#C54724" | sed 's/a href="//g' | sed 's/" style=" background-color:#C54724//g'`

就能提取出下载链接了,将这坨玩意保存成fi.sh,然后如果你有一堆这个网盘的链接需要处理的话,保存成一个nein文件,然后

for link in `cat nein`; do ./fi.sh $link; sleep 1; done 2>/dev/null

就能获得所有下载链接了。

其实风云网盘的下载链接有个很奇怪的点,那就是它里面没有时间戳信息,换句话说8小时前生成的链接和现在生成的链接长得一个字节都不差。这也差不多意味着另外一件事,它的链接几乎永远不会过期,除非那个文件不在服务器上。这就屌的1b了。

然后你还可以将其转换为wget可以处理的格式,这个网盘的下载链接格式长得像这样:<a href="http://vipdown3.76fengyun.com/filestores/60540675/094c01ada9164816eaacf041ba93619c.rar?n=ZX024">http://vipdown3.76fengyun.com/filestores/60540675/094c01ada9164816eaacf041ba93619c.rar?n=ZX024</a>,下载文件只需要问号前面的东西就够了,后面那个n是文件名,理论上来说它的content-disposition头里有文件名参数,但有时候没有,所以利用n后面的玩意效果更好些,比如在上面那个fi.sh后面再加

| sed "s/?n=/ /g" | awk '{printf "wget \"%s\" -O \"%s.rar\"\n", $1, $2}'

然后它就会输出

wget "http://vipdown3.76fengyun.com/filestores/60540675/094c01ada9164816eaacf041ba93619c.rar" -O "ZX024.rar"

现在可以直接扔任何一个linux VPS上下了。

另外值得一提的是,这个片子是个短发妹的片子,不是什么时候你都能见到短发妹片子的,因为这种国产自拍里面绝大多数都是令人生厌的长发糟糕妹。短发妹控现在就可以下下来撸了(手动滑稽

接下来肯定需要传onedrive上了,申请office 365教育版帐号有一千零一个好处,除了5TB的onedrive空间外,还可以用一款叫做oneindex的PHP程序实现外链网盘的效果。如果上传上去的是原始视频格式,oneindex甚至可以支持在线观看,非常爽。目前最快的上传onedrive工具当然是onedrivecmd了,python做的,装winserver上都没问题(cyg-apt可以将python、python-pip等一次性搞定,最后再一句pip install onedrivecmd)。解压那些压缩包(那个站几乎所有的压缩包密码都是1024,毕竟1024核工厂嘛)之后就可以一句onedrivecmd put . od:/NSFW/xxxx全上传上去了。当然如果你要上传比如30GB的片子的话,最好还是把这些片子每10GB装一个文件夹里然后调用多次onedrivecmd(中间用分号隔开),因为这个破脚本只能维持一个小时的access token而且中途不带续期的,一个小时过后就啥都别想上传了。而且它也没有断点续传或者跳过已上传文件的功能,相当蛋疼。而且它也不支持传文件夹,所以那些有一大堆图片的文件夹就只能自寻多福了(onedrivecmd mkdir + put?)。

另外我写了一个递归上传文件夹的脚本,但速度实在是感人,因为每上传一个文件就要运行一次onedrivecmd,不过至少能用,现在已经可以直接一次性上传文件夹里所有文件了,话说回来我不知道我这种写法算不算回溯了:

function rupload(){ # localdir, remotedir
    if [ -d "$1" ]
    then
        flag=0
        for file in `ls "$1" | sed 's/ /|/g'`
        do
            if [ -d "$1/$file" ]
            then
                file=`echo "$file" | sed 's/|/ /g'`
                echo "onedrivecmd mkdir \"$2/$file\""
                # onedrivecmd mkdir "$2/$file"
                rupload "$1/$file" "$2/$file"
            else
                # file=`echo "$file" | sed 's/|/ /g'`
                # echo "onedrivecmd put \"$1/$file\" \"$2\""
                # onedrivecmd put "$1/$file" "$2"
                if [ $flag == 0 ]
                then
                    echo "onedrivecmd put \"$1/\"*.* \"$2\""
                    # onedrivecmd put "$1/"*.* "$2"
                    flag=1
                fi
            fi
        done
    fi
}

localdir="$1"
remotedir="$2"
rupload "$localdir" "$remotedir"

3 进阶篇

无论你准备把1024核工厂里面所有的片子都拖下来,还是像我一样只准备下短发妹的片子,都需要对其进行一番数据挖掘。在此没有什么比pyspider更好用的工具了。我以前有一个pyspider,但那台VPS已经挂了,所以我们可以借助官方demo站来搞。

既然这是“别人家的站点”,我们能做的事就极其有限,诸如获取下载链接一条龙之类的事就想都别想了,但我们可以至少把所有帖子的链接搞出来,然后自行curl然后慢慢grep。这里有一个范例程序可供参考:

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2018-06-11 19:54:19
# Project: 1024NuclearFactory

from pyspider.libs.base_handler import *

class Handler(BaseHandler):
    crawl_config = {
    }

    @every(minutes=24 * 60)
    def on_start(self):
        self.crawl('http://1024.skswk9.pw/pw/thread.php?fid=80&page=1', callback=self.index_page)

    @config(age=10 * 24 * 60 * 60)
    def index_page(self, response):
        page=int(response.url.replace("http://1024.skswk9.pw/pw/thread.php?fid=80&page=", ""))+1
        self.crawl("http://1024.skswk9.pw/pw/thread.php?fid=80&page="+str(page), callback=self.detail_page)
        for each in response.doc('a[href^="http://1024.skswk9.pw/pw/read.php?tid="]').items():
            self.crawl(each.attr.href, callback=self.detail_page)


    @config(priority=2)
    def detail_page(self, response):
        return {
            "url": response.url,
            "title": response.doc('title').text(),
        }

注意我没有写真正的翻页语句,我只是简单地加了个1。理论上来说这种翻页语句是存在的(因为我以前写过),但我懒得折腾。以目前pyspider界面能用的程度,需要每一页输出一次链接,但还在能够忍受的范围内。

接下来就可以自由发挥了,可以用python的一些工具来搞下载链接,当然也可以直接grep,毕竟每个版主用的网盘是固定的,可以用regexp直接搞链接(尽管这不是什么正经的处理HTML的方式)。像我就直接搜短发了(手动滑稽

别忘了在grep之前先把所有的<br变成\r\n,不然别想grep出什么东西来。

这儿还有点我提取链接并计算总文件大小用的脚本,也贴出来:

for file in `ls`; do  filename=`echo $file | grep -Eo "[0-9]*"`; mv "$file" "$filename.html"; done
for file in `ls`; do cat "$file" | sed 's/<br/\n/g' | grep -aEo "a href=\"http://www.76fengyun.com.*\" target" | sed 's/a href="//g' | sed 's/" target//g'; done > nein.txt
for link in `cat nein.txt`; do bash fi.sh "$link"; sleep 1; done > res.txt
cat res.txt | sed 's/vipdown5/vipdown4/g' | sed 's/vipdown1/vipdown4/g' > res2.txt
for link in `cat res2.txt`; do curl -sI "$link" | awk '/Content-Length/ { print $2 }'; sleep 1; done > size.txt
dos2unix size.txt
total=0
for num in `cat size.txt`; do let total=$total+$num; done
echo $total

哇~这些片子有647.75851277913898229598999023438 GB这么多啊。

A 附录

这段时间并没有做什么,除了王朝勇士nein外我也就玩了两款游戏,一款FFVX,另外一款是Persona 5,而且它们无论在哪里都能被强行比较一番。因为FFXV是日厂的大制作,换在十几年前FF只要出新作就能霸占任何榜,所以FFXV令所有人期待,然后它pokgai了。而P5只是一款中型制作,更别说本质上P5只是一款PS3游戏,结果P5在各种媒体得分上都全面碾压FFXV,然后就有了P5秒FFXV的说法。其实这两款游戏连大类别都不一样,一款是ARPG,一款是回合制RPG,根本没法比。