xeHentai: 紳士漫畫多線程下載器 e-hentai.org, exhentai.org

ON 2013 年 3 月 23 日

975186828轉為簡體

視頻教程本地播放Youtube
下載鏈接https://dl.yooooo.us/share/xeHentai/
度娘網盤鏡像https://pan.baidu.com/s/1jIiyHim

前言

  • 不要把線程數設得太大,為了更真實地模擬瀏覽器的並發連接,不然IP可能會被ban;而且設得很大也不會提高你的速度- –

  • 記住適度使用,不要作死

Doujinshi downloader 紳士漫畫下載
https://github.com/fffonion/xeHentai
30forks.
204stars.
7open issues.
Recent commits:

或者http://git.oschina.net/fffonion/xehentai


那啥

  • 下載exhentai漫畫需要登錄賬號;登錄後不會粗線熊貓

  • 每個ip單位時間下載量都有配額(下載前會顯示出來),下載原圖需要雙倍配額;沒有配額了請等一下再下,否則下回來的都是509s.gif

  • 到底配額是神馬!配額按照伺服器負載給出,下載一張圖片消耗1點配額,下載原圖需要2點,每分鐘恢復1點配額;假設當前配額為200,則下載200張圖片後將無法下載。登陸用戶有雙倍配額。以下圖片為登陸用戶在各時段的配額,請在配額多時下載(那時伺服器負載低)。另外,ehentai提供一種名叫Hentai@Home(H@H)的共享工具,如果周圍已經有人使用H@H緩存了這些圖片,就會從他們那裡下載漫畫,將不計入配額。僅供參考,以程序內獲得的為準ww

  • 因此可以這麼說:下載新發布的、冷門的漫畫更有可能消耗配額,下載熱門漫畫基本不消耗配額

  • 2015年更新:紳士站現在的配額全天固定為5000個,可以使用hath購買更多上限,或者使用GP重置配額;hath和GP可以通過掛Hentai@Home,做種和玩奇怪的遊戲獲得;新註冊的用戶無法登錄里站,請放置play一段時間

說明

windows用戶可以下載可執行文件這裡或這裡

或者可以運行源碼

1

2

3

4

5

pip install -U requests[socks]

git clone https://github.com/fffonion/xeHentai.git

cd xeHentai

python ./setup.py install

xeH

新版本默認為命令行模式,如果需要使用交互模式,請運行xeH.py -i

詳細說明

配置文件

使用源碼運行的用戶請先將xeHentai/config.py複製到當前目錄。

配置的優先順序為 交互模式 > 命令行參數 > 用戶config.py > 內置config.py。

常用參數:

  • daemon後台模式,僅支持posix兼容的系統,參見運行模式,默認為否

  • dir下載目錄,默認為當前目錄

  • download_ori是否下載原圖,默認為否

  • jpn_title是否使用日語標題,如果關閉則使用英文或羅馬字標題,默認為是

  • rename_ori將圖片重命名為原始名稱,如果關閉則使用序號,默認為否

高級參數:

  • proxy代理列表,參見代理

  • proxy_image是否同時使用代理來下載圖片和掃描網頁,默認為是

  • proxy_image_only是否僅使用代理來下載圖片,不用於掃描網頁,默認為否

  • rpc_interfaceRPC綁定的IP,參見JSON-RPC,默認為localhost

  • rpc_portRPC綁定的埠,默認為None

  • rpc_secretRPC密鑰,默認為None(不開啟RPC伺服器)

  • make_archive是否下載完成後生成zip壓縮包,並刪除下載目錄,默認為否

  • download_range設置下載的圖片範圍,參見下載範圍

  • scan_thread_cnt掃描線程數,默認為1

  • download_thread_cnt下載線程數,默認為5

  • download_timeout設置下載圖片的超時,默認為10

  • ignored_errors設置忽略的錯誤碼,默認為空,錯誤碼可以從const.py中獲得

  • log_path日誌路徑,默認為eh.log

  • log_verbose日誌等級,可選1-3,值越大輸出越詳細,默認為2

  • save_tasks是否保存任務到h.json,可用於斷點續傳,默認為否

命令行模式

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

用法: xeH [-u USERNAME] [-k KEY] [-c COOKIE] [-i] [--daemon] [-d DIR] [-o]

[-j BOOL] [-r BOOL] [-p PROXY] [--proxy-image | --proxy-image-only]

[--rpc-interface ADDR] [--rpc-port PORT] [--rpc-secret ...]

[-a BOOL] [--download-range a-b,c-d,e] [-t N] [--timeout N] [-f]

[-l /path/to/eh.log] [-v] [-h] [--version]

[url [url ...]]

士下載器

必選參數:

url 下載頁的網址

可選參數:

-u USERNAME, --username USERNAME

用戶名

-k KEY, --key KEY 密碼

-c COOKIE, --cookie COOKIE

Cookie字元串, 如果指定了用戶名和密碼, 此項會被忽略

-i, --interactive 交互模式, 如果開啟後台模式, 此項會被忽略 (默認: False)

--daemon後台模式 (默認: False)

-d DIR, --dir DIR 設置下載目錄 (默認: 當前目錄)

-o, --download-ori是否下載原始圖片(如果存在), 需要登錄 (默認: False)

-j BOOL, --jpn-title BOOL

使用日語標題, 如果關閉則使用英文或羅馬字標題 (默認: True)

-r BOOL, --rename-ori BOOL

將圖片重命名為原始名稱, 如果關閉則使用序號 (默認: False)

-p PROXY, --proxy PROXY

設置代理, 可以指定多次, 當前支持的類型: socks5/4a, http(s), glype.

代理默認只用於掃描網頁 (默認: )

--proxy-image 同時使用代理來下載圖片和掃描網頁(默認: True)

--proxy-image-only僅使用代理來下載圖片, 不用於掃描網頁 (默認: False)

--rpc-interface ADDR設置JSON-RPC監聽IP (默認: localhost)

--rpc-port PORT 設置JSON-RPC監聽埠 (默認: None)

--rpc-secret ...設置JSON-RPC密鑰 (默認: None)

-a BOOL, --archive BOOL

下載完成後生成zip壓縮包並刪除下載目錄 (默認: False)

--download-range a-b,c-d,e

設置下載的圖片範圍, 格式為 開始位置-結束位置, 或者單張圖片的位置, 使用逗號來分隔多個範圍, 例如

5-10,15,20-25, 默認為下載所有

-t N, --thread N下載線程數 (默認: 5)

--timeout N 設置下載圖片的超時 (默認: 10)

-f, --force 忽略配額判斷, 繼續下載 (默認: False)

-l /path/to/eh.log, --logpath /path/to/eh.log

保存日誌的路徑 (默認: eh.log)

-v, --verbose 設置日誌裝逼等級 (默認: 2)

-h, --help顯示本幫助信息

--version 顯示版本信息

如果參數未指定, 則使用config.py中的默認值;否則將覆蓋config.py設置的值。

JSON-RPC

在指定rpc_interfacerpc_port後, xeHentai會啟動RPC伺服器。使用JSON-RPC 2.0標準。典型的請求如下:

Shell

1

2

$ curl localhost:8010/jsonrpc -d '{"jsonrpc": "2.0", "id": 1, "method":"xeH.addTask", "params":[[args],]}'

{"jsonrpc": "2.0", "id": 1, "result": "36df423e"}

rpc_secret可用於提高安全性。如果rpc_secret設置為hentai, 則需在params中帶上這個值:

Shell

1

2

$ curl localhost:8010/jsonrpc -d '{"jsonrpc": "2.0", "id": 1, "method":"xeH.addTask", "params":["token:hentai",[args],]}'

{"jsonrpc": "2.0", "id": 1, "result": "36df423e"}

其中method為調用的方法,必須以xeH.開頭。在core.py的xeHentai類中,所有不以下劃線_開頭的方法均可以通過RPC調用,但需將方法名的下劃線命名法改為駝峰命名法。如add_task需改為addTask

參數列表請參閱xeHentai類。

如果瀏覽器安裝了用戶腳本插件,可以下載xeHentaiHelper.user.js,將會在頁面上添加Add to xeHentai鏈接,以支持將當前頁面添加到xeHentai中。Chrome用戶需要安裝Tampermonkey, Firefox用戶需要安裝Greasemonkey,Opera和傲遊用戶需要安裝暴力猴。

由於紳士站啟用了https,而rpc走的是http,所以chrome用戶需要點擊地址欄右側盾牌,選擇「載入不安全的腳本」

運行模式

如果通過命令行或交互模式指定了下載url,xeHentai會在下載完成h.json中存儲的任務(如果存在)及指定的url後退出。

如果命令行沒有指定url,xeHentai將會在完成存檔h.json中的隊列(如果存在)後繼續等待。

如果指定了後台模式(-d或設置daemonTrue),xeHentai將會在保持後台運行。

代理

目前支持三種模式的代理:

  • socks代理,如socks5h://127.0.0.1:1080;如果需要在客戶端解析DNS,請使用socks5://127.0.0.1:1080

  • http(s)代理,如http://127.0.0.1:8080

  • glype代理,如http://example.com/browse.php?u=a&b=4。請根據實際情況修改b的名稱。glype是目前使用最廣的php在線代理,使用時請取消勾選「加密url(Encrypt URL)」、取消勾選「移除腳本 (Remove Scripts)」、勾選「允許cookies (Allow Cookies)」後隨意打開一個網頁,然後把網址粘貼進來

可以指定多個代理,格式如['socks5h://127.0.0.1:1080', 'http://127.0.0.1:8080']

默認情況下代理會被用於掃描網頁和下載圖片。如果不需要使用代理下載圖片,請在配置文件中設置proxy_imageFalse

如果使用代理僅用於突破封鎖的目的,則此項可以設置為False;如果需要保證隱私,請將此項設置為True。使用glype代理的用戶建議將此項設為False

如果僅需要使用代理下載圖片,不需要掃描網頁,請在配置文件中設置proxy_image_onlyTrue,或者在運行時加上--proxy-image-only參數。如果在配置中的proxy_imageproxy_image_only均為True,則proxy_image將被忽略。

下載範圍

下載範圍的格式為使用開始位置-結束位置,例如5-10表示下載第5到第10張圖片,包括第5和第10張;或者單個位置,例如15表示下載第15張圖片。

可以通過逗號來分割多個範圍,例如5-10,15表示下載第5到第10張圖片以及第15張圖片。

如果不輸入下載範圍,則默認下載所有圖片。

登錄

請不要使用測試賬號testexhentai,可能無法在xeHentai內登錄,請自己註冊賬號;新註冊的賬號需要一定時間才能登錄里站。

如果一定要使用測試賬號,請在瀏覽器登錄成功後通過RPC添加一次任務來完成登錄。