hardseed - 种子下载工具


GPLv2
跨平台
C/C++

软件简介

硬盘女神,你懂嘀!hardseed
是个种子下载工具,它从浓(ai)情(cheng)蜜(she)意(qu)和爱(cao)意(liu)无(she)限(qu)的地方获取女神种子、图片。

【翻墙】

你知道,这一切的一切都在墙外,所以你得具备翻墙环境,hardseed 才能正常帮你拉女神。hardseed 支持
goagent、shadowsocks、SSH、VPN (PPTP 和
openVPN)等各类代理模式,甚至你可以并行使用多种代理以极速下载。从普及度、稳定性、高效性来看,goagent
最优。“我一技术小白,平时工作压力本来就大,就想看看女神轻松下,你还让我折腾代理!没人性!”,嘚,亲,咱是做服务的。我帮你配置了一份开箱即用的
goagent,位于 hardseed/proxy/goagent_3.1.19/local/,linux 用户,命令行中运行

$ python proxy.py

windows 亲,双击运行 goagent.exe ( 管理员权限 )。

【下载】

『windows』

亲,往右上看,找到“download ZIP”,点击下载。

『linux』

$ git clone https://github.com/yangyangwithgnu/hardseed.git

【源码安装】

『windows』

这基本没 windows 用户什么事儿,除非你有
cygwin,否则你没法编译源码,没事,帮你弄好了,我的定位是牙医界的服务人员,服务很重要,二进制执行程序位于
hardseed\bin\windows\hardseed.exe。

『linux』

0)唯一依赖 libcurl,请自行安装;
1)代码采用 C++11 编写,gcc 版本不低于 4.7.1。
2)命令行下运行:

$ cd hardseed/build/
$ cmake .
$ make && make install

【使用】

亲,听好了,运行 hardseed 前务必确保代理程序已正常运行,否则,别说女神,蚊子都碰不到。

『windows』

先进入 hardseed\bin\windows\,找到并选中 hardseed.exe,右键设置 以管理员权限运行该程序 ,接着键入 alt-d
将光标定位到文件管理器的地址栏中,键入 CMD 启动命令行窗口,再在 CMD 中键入

X:\hardseed\bin\windows> hardseed.exe

这时,hardseed 开始玩命儿为你下载女神图片和种子,经过 2 分钟 8 秒,找到类似
C:\[aicheng_asia_mosaicked][1~128]@014822\ 的目录,女神们那儿等你!

『linux』

同 windows 下运行一样,全用默认命令行参数运行

$ hardseed

执行完成后,你会看到 ~/[aicheng_asia_mosaicked][1~128]@014822/,你要的都在那儿。或者,玩点高级的

$ hardseed --saveas-path ~/downloads --topics-range 256 --av-class aicheng_west

其中,–saveas-path 指定存放路径为 ~/downloads/;–topics-range 指定解析的帖子范围从第 1 张帖子到第 256
张帖子;–av-class 指定女神类型为欧美。

【FQA】

Q0 :osX 下源码编译报错:

...
Linking CXX executable hardseed
Undefined symbols for architecture x86_64:
"_iconv", referenced from:
Webpage::convertCharset(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in Webpage.o
...

A0 :请把 CMakeList.txt 中的

SET(CMAKE_EXE_LINKER_FLAGS "-lcurl -lpthread")

替换成

SET(CMAKE_EXE_LINKER_FLAGS "-lcurl -lpthread -liconv")

Q1 :为何 windows 版的可执行文件目录 hardseed\bin\windows\ 下有一堆 cyg.dll 文件?
A1 :hardseed 是用 C++ 编写的遵循 SUS(单一 unix 规范)的原生 linux 程序,理论上,在任何 unix-
like(linux、BSD、osX) 系统上均可正常运行,唯独不支持 windows,为让 hardseed 具备跨平台能力,须借由某种工具(或环境)将
hardseed 转换成 windows 下的执行程序。cygwin 就是这种环境,我把 hardseed 源码纳入 cygwin 环境中重新编译,即可生成
windows 下的可执行程序 hardseed.exe,在这个过程中,cygwin 会加入些自己的代码和中转库到 hardseed.exe
中,cyg
.dll 就是各类中转库。

Q2 :为何运行 windows 版的执行程序总有如下警告

Preferred POSIX equivalent is: /cygdrive/c/xxxx, CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths ...

这影响正常运行么?
A2 :linux 与 windows 有很多基础设施的差异,路径表示方式就算其一,如,前者是 /this/is/linux/path/,后者
C:\this\is\windows\path\,A1 中提过 hardseed 是 linux 下的原生程序,代码中全采用的 linux 路径规则,运行
hardseed.exe 时, cygwin 自动进行路径规则转换,所以出现本问题中的警告信息以告知用户路径可能有变化。这完全不影响
hardseed.exe 正常运行。如果厌恶这些提示,可以在环境变量中增加 CYGWIN=nodosfilewarning (win7
用户:computer - properties - advanced system settings - advanced - environment
variables - new,variable name 填入 CYGWIN,variable value 中填入
nodosfilewarning,保存即可)。

Q3 :运行 hardseed 后啥都没下载呢?还提示 There is no topic which you like?
A3 :有几种可能:
a)未成功翻墙。请自行参阅你的翻墙工具帮助文档,修正即可。windows 用户注意检查是否以 管理员权限运行翻墙工具
b)网页翻墙已成功但仍无法下载。请检查你的代理工具是否成功接收 hardseed 的代理请求(如,goagent 窗口中可查看),windows
用户注意检查是否以 管理员权限运行 hardseed.exe
c)hardseed 翻墙已成功但仍无法下载。你指定了 –like xxxx 命令行选项,hardseed 将查找标题中是否含有关键字
xxxx,若没有则忽略相关帖子。更换其他关键字。

Q4 :我已经在墙外,为何仍下载失败?
A4 :hardseed 默认采用 goagent 作为代理工具,即,默认本地代理中转地址为 http://127.0.0.1:8087
。如果你已在墙外无须代理即可访问 caoliu 和 aicheng 论坛,那么需要告知 hardseed 不再走本地代理中转而应直接访问,即:

--proxy ""

Q5 :如何加快下载速度?
A5 :最直接会想到多线程下载,一条线程负责下载一个页面,逻辑上,线程数越多、下载速度越快,实际上,存在代理服务器和被访服务器两方面的限制:

  • 代理服务器方面的限制,代理服务器为不同用户提供代理服务,为避免相互影响,通常它会限制单个用户的流量和请求频率,所以,hardseed 在指定代理服务器上的线程数一定是有个上限;

  • 被访服务器方面到限制,你访问的论坛不会低能到不控制请求频率,举个例,正常情况你 4 秒钟可以打开 4 张 caoliu 论坛的帖子,一旦 caoliu 服务器发现你 1 秒钟打开了 32 张帖子那一定将此视为机器人行为,从而拒绝响应。

正由于存在代理服务器和被访服务器两方面的限制,线程数不能无限大,从我多次测试的经验来看, 单个代理服务器 访 问被访服务器的并行线程数设定为 8
条最为稳定,否则容易引起代理服务器和被访服务器停服。同个时刻有大量用户在访问 caoliu 论坛,肯定远超 1 秒钟打开了 32 张帖子的频率,为何
caoliu 没对所有用户拒绝请求?显然,这些请求来自不同 IP 的电脑终端,按这个思路,如果 hardseed 若能通过多个不同 IP 访问
caoliu,那完全可以绕开 caoliu 对单个 IP 请求频率过快的限制。由于我们采用代理访问,发起访问请求的 IP 就是代理服务器的 IP,显然,只要
hardseed 支持同时使用多个代理服务器,那么一切问题就简单了。所以,我 赋予了 hardseed 多路代理的能力 。hardseed 支持 4
种代理模式:

  • goagent (STRONGLY recommended), –proxy http://127.0.0.1:8087

  • shadowsocks, –proxy socks5://127.0.0.1:1080, or socks5h://127.0.0.1:1080

  • SSH, –proxy socks4://127.0.0.1:7070

  • VPN (PPTP and openVPN), –proxy “”

其中,除 VPN 外(这是种全局代理模式),其他三种代理模式可混用,也就是说,你可以同时指定 goagent、shadowsocks、SSH 等三种代理模式

--proxy http://127.0.0.1:8087 socks5://127.0.0.1:1080 socks4://127.0.0.1:7070

这样,hardseed 就能用 8 * 3 条线程并行下载。另外,goagent 都是通过 GAE 集群发起到网络请求,所以不存在同个机器上配置多个
goagent 的做法;SSH(获取免费帐号 http://www.fastssh.com/ ) 和 shadowsocks(获取免费帐号
https://shadowsocks.net/get ) 代理,你可以获取多个不同的代理服务器(不同的 SSH 或者 shadowsocks
代理的本地端口必须自行设置成不同的),因此可以实现多个不同 IP 发起网络请求。换言之,你可以有 1 * goagent + n * SSH + m * shadowsocks 个代理 IP,每个 IP 本来就有 8 条线程,那么共计有 (1 + n + m) * 8 条线程并行下载,速度自然上去了。
我个人偏爱 shadowsocks,以此举例来说:先在 https://shadowsocks.net/get 获取了 4 个 shadowsocks
帐号,本地端口分别配置成 1080、1081、1082、1083,运行此 4 个 shadowsocks 代理程序;同时,运行 goagent
代理程序;然后,在 hardseed 的命令行参数设定为

--proxy http://127.0.0.1:8087 socks5://127.0.0.1:1080 socks5://127.0.0.1:1081 socks5://127.0.0.1:1082 socks5://127.0.0.1:1083

这时,如果你的 –concurrent-tasks 设定为 8(默认值),那么,hardseed 将启用 (4 + 1) * 8
条线程并行下载。那速度飞快、飞快、快 …
(有些 shadowsocks 代理服务器禁止下载,若有异常,将其从 –proxy 代理列表中剔除之。若求稳定,只用 goagent)

Q6 :如何搜索喜欢的视频?
A6 :–like
选项可以指定多个关键字(空格隔开)参数,帖子标题中出现相关关键字之一便纳入下载范围,否则不下载。通常来说,帖子标题中文字有简体、繁体、日文等三种可能,所以你应该都指定,比如,喜欢“护士”和“情侣”系列,先简译繁
http://www.aies.cn/ ,简译日 http://fanyi.baidu.com/#zh/jp/ ,再指定命令行参数即可

--like 护士 護士 看護婦 情侣 情侶 カップル

Q7 :如何下载高清?
A7 :hardseed 并不直接支持高清类型下载,只能间接实现,由 –like 指定“高清”相关关键字进行下载,比如:

--like 1080P 720P HD 高清 ハイビジョン

忠告


你,党之栋梁、国之人才,千万注意身体!

http://v.youku.com/v_show/id_XNzQxOTk0NTE2.html