xeHentai: 紳士漫畫多線程下載器 e-hentai.org, exhentai.org
ON 2013 年 3 月 23 日
視頻教程:本地播放或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:
update travis-ci badge, Alliumcepa
Merge branch 'dev', Alliumcepa
fix a bug when locale is not set, Alliumcepa
update readme, Alliumcepa
Merge branch 'dev', Alliumcepa
或者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一段時間
說明
或者可以運行源碼
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_interface
和rpc_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
或設置daemon
為True
),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_image
為False。
如果使用代理僅用於突破封鎖的目的,則此項可以設置為False
;如果需要保證隱私,請將此項設置為True
。使用glype代理的用戶建議將此項設為False
。
如果僅需要使用代理下載圖片,不需要掃描網頁,請在配置文件中設置proxy_image_only
為True,或者在運行時加上--proxy-image-only
參數。如果在配置中的proxy_image
和proxy_image_only
均為True,則proxy_image
將被忽略。
下載範圍
下載範圍的格式為使用開始位置-結束位置
,例如5-10
表示下載第5到第10張圖片,包括第5和第10張;或者單個位置,例如15
表示下載第15張圖片。
可以通過逗號來分割多個範圍,例如5-10,15
表示下載第5到第10張圖片以及第15張圖片。
如果不輸入下載範圍,則默認下載所有圖片。
登錄
請不要使用測試賬號testexhentai,可能無法在xeHentai內登錄,請自己註冊賬號;新註冊的賬號需要一定時間才能登錄里站。
如果一定要使用測試賬號,請在瀏覽器登錄成功後通過RPC添加一次任務來完成登錄。