Git Product home page Git Product logo

onecomic's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

onecomic's Issues

编辑

似乎是站点cookie更新,本地文件cookie没有及时更新

请求追加站点优酷漫画及修复COCOMANHU

优酷漫画地址:https://www.ykmh.com/
好像是原来的漫画堆

另外支持列表里的cocomanhua我试了很多次好像都不能抓取成功,不知道是不是失效了
麻烦也修复一下吧
…………………………………………………………
更新一下 coco原来是我没正确配置,现在已经没问题了

报错 b漫下载出错了

错误信息
2021/12/14 13:18:30 onecomic.config 97 [INFO] loading config. config=config.ini
2021/12/14 13:18:30 onecomic.worker 19 [INFO] set worker. worker=4
2021/12/14 13:18:30 onecomic.cli 296 [INFO] set proxy. socks5://127.0.0.1:4781
2021/12/14 13:18:30 onecomic.cli 308 [INFO] load cookies success. bilibili.json
2021/12/14 13:18:30 onecomic.cli 290 [INFO] 哔哩哔哩漫画 comicid=28502 【公主大人,接下来是“拷问”时间】 更新至: 126 拷问123 数据来源: https://manga.bilibili.com/m/detail/mc28502
2021/12/14 13:18:31 onecomic.cli 172 [ERROR] download comicbook error. site=bilibili comicid=28502 chapter_number=126
Traceback (most recent call last):
File "C:\Python\oc\onecomic\cli.py", line 148, in download_main
chapter = comicbook.Chapter(chapter_number, ext_name=ext_name)
File "C:\Python\oc\onecomic\comicbook.py", line 168, in Chapter
chapter_item = self.crawler.get_chapter_item(chapter_item)
File "C:\Python\oc\onecomic\crawlerbase.py", line 307, in get_chapter_item
image_urls = self.get_chapter_image_urls(citem)
File "C:\Python\oc\onecomic\site\bilibili.py", line 132, in get_chapter_image_urls
chapter_api_data = self.get_chapter_api_data(cid=citem.cid)
File "C:\Python\oc\onecomic\site\bilibili.py", line 84, in get_chapter_api_data
raise ChapterNotFound(f"Please read on bilibili Manga APP. {source_url}")
onecomic.exceptions.ChapterNotFound: Please read on bilibili Manga APP. https://manga.bilibili.com/mc28502/666738

https://www.cocomanhua.com/ 爬取报错,请修复下

var decrypt = CryptoJS.AES.decrypt(word, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return CryptoJS.enc.Utf8.stringify(decrypt).toString()
};

function decode_data(C_DATA, key, default_key) {
// console.log(C_DATA);
// @see https://www.ohmanhua.com/js/custom.js
C_DATA = CryptoJS.enc.Base64.parse(C_DATA).toString(
CryptoJS.enc.Utf8);

var KEY_list = [ 'fw122587mkertyui', 'fw12558899ertyui',
'JRUIFMVJDIWE569j' ];
if (typeof default_key === 'string' && default_key){
KEY_list.unshift(default_key);
}
if (key){
KEY_list.unshift(key);
}

for (var index = 0; index < KEY_list.length; index++) {
// @search if (typeof C_DATA != ...) { eval( @
// https://www.ohmanhua.com/js/custom.js
try {
var DECRIPT_DATA = __cdecrypt(KEY_list[index],
C_DATA);
if (DECRIPT_DATA)
return DECRIPT_DATA;
} catch (e) {
console.log("decode_data error");
}
}
}

function decode(C_DATA) {
C_DATA = decode_data(C_DATA);
console.log(C_DATA);

var mh_info, image_info;
eval(C_DATA);
mh_info.image_info = image_info;
// @see totalImageCount = // parseInt(eval(base64[__Ox97c0e[0x4]](__Ox97c0e[0x3]))) @
// https://www.ohmanhua.com/js/manga.read.js
if (mh_info.enc_code1) {
mh_info.totalimg = eval(decode_data(mh_info.enc_code1));
}
if (mh_info.enc_code2) {
mh_info.imgpath = decode_data(mh_info.enc_code2,
// 2020/9/3 改版
// @see function __cr_getpice(_0xfb06x4a)
"fw125gjdi9ertyui", "");
}
return mh_info;
}

function getArr(data) {
var using_webp = false
var base_URL = 'https://www.cocomanhua.com/'
var chapter_data = {}
if (!chapter_data || !(chapter_data = decode(data))) {
CeL.warn(work_data.title + ' #' + chapter_NO
+ ': No valid chapter data got!');
return;
}
// chapter_data.startimg often "1"
var image_NO = parseInt(chapter_data.startimg) || 1;
// 設定必要的屬性。
chapter_data.title = chapter_data.pagename;
// chapter_data.image_count = chapter_data.totalimg + image_NO - 1;

// @see function __cr_getpice() @
// https://www.ohmanhua.com/js/manga.read.js
var chapter_image_base_path = base_URL.replace(/://.+/, '://')
// "img.mljzmm.com"
+ chapter_data.domain + "/comic/" + encodeURI(chapter_data.imgpath);
chapter_data.image_list = [];

for (; image_NO <= chapter_data.totalimg; image_NO++) {
// @see __cr.PrefixInteger()
var image_url = chapter_image_base_path + (Array(4).join("0") + image_NO)
ice(-4) + ".jpg";
if (using_webp) {
// @see __cr.switchWebp()
image_url += '.webp';
}
chapter_data.image_list.push(image_url);
}
//
// mh_info = {
// startimg: 1,
// enc_code1: "aVp6aWlITE1XcGJmSllMd0Z2NFhIZz09",
// mhid: "10330",
// enc_code2: "dzNaUXJ5SXFUangvNFZDQzZPdjRFSGpsMEVyYzdtTFdNMUsyR2pXcHIzWVRu
qZlVYTkFwenhxWENDajVrYXlvS0ZOQkV1T0w3N0pDTDFneHhkblpobkwyWWx4ank3c0tCZ3ZDUk05
9",
// mhname: "未婚爸爸",
// pageid: 2823662,
// pagename: "二十几个壮汉",
// pageurl: "1/205.html",
// readmode: 3,
// maxpreload: 5,
// defaultminline: 1,
// domain: "img.cocomanhua.com",
// manga_size: "",
// default_price: 0,
// price: 0
// };
// console.log(chapter_data.image_list);
return chapter_data.image_list
}

// var data = "a29ydGl3RktIZSs2WGhPS3M4ZW1yNmhsaWowT0szeGZERTRTYmNhN1RPYTYxbm
0ZmV3VqL1ozMFkwZFZ3KzJlTU1vT2JVcEgyeW1nVVRVUmQ4OWJhNU55VkFaamp2ODYyZTFEQXQwYW
DBWbWxnSmdJUTJTd0NwY1dFUndPbFBWVFBwQ3E0NzY0SXpqZnlBdjJIM1ViK2J0Um1oZ1pQZTAyMS
GloUDhWb21FOHVYTzRzSGYvZitDb3dicU1aWEFLQzJQd1A3NXlONkc4bmJiNzB5U2cxbFdwMjV0U1
XZQT1JwKzJwY1RFRFl1dWFOSFdCRUlOS0I1aFZJbVZtNlM0czZLd3Q5M1FuVU1zSFlWTGV0aFJHL0
WlJWWM4TldreHIyWnRML0lYcmF2SHlBcEYzTTVHMTFPM295UWVLS3hKVGJrRXJ2YTFPeWtWQVVkaU
0hCdjVJV2RDdGIzZVdpaEtVQ1pISVRrSTBBWjRpUEhDZ1pRUm5TQXI2K3l3cnlreTJTclM5U0VMTV
VJVRjJNQ3B2VnlxbDQ3QjI4blBxb2ViSUtRd0JFeWZhQ20rVDFMK1ZpbnVUMjNES0E0NmF5ckRsUn
zJ6YUZ2UGNJVHU2a21OQXJKZlFjUnZsUXB6YmhyUWlpYi9HVW1ldFpHd2VTbjZlZk9VTWh3cmpLdk
XI2SGFQd2wvTU1TS1UrSFQxL0lFMGhXUyt6THRic0NaOVMxc1dNVUtsZ1VEOWdkWERyOEFib2tlbF
y9yekMvbEc0VHV2aHg2eEhiR0pNeFNMYXVMaTFWNEJJbzUxQ3ljWDBFVUMyWE9Gd1A5S3BBMHAvNW
lpXWjNKb3d3MDh2bXFoYUI1SnFIeHJZSmtKbXV6WFRrQU09";

// console.log(getArr(data));

return eval('('+"getArr("TkNaL203RTR6Mk1ZaXh5bXVMRUU4VHlpM3REM29DeTU2QkxtU3d
FKV0JyakNhc1FQdDIvUXFNZ2puSFQ1dW12akN0YXlmS1pPMldZZmVjQ1ZSVVRISldtVWMyb01ONzl
QxOWNIU1hiQVdxUW1aVFFzSzVNYlo1M21ibDdDOXJOcTdWSEVBQ1lmSlF3UEVRVjZ0UlQwbUN4MDV
cwdUNOZ0EwY21PRWJoTlR2WFkzN1B0b2lTMGtmN0pqS0NrYzVadzRhUUVwL0dpUnJicmY4a2hxNDB
lTc2dXRXhHUXRoSXJ6UUgwWTZ2OFFaYjNZa0s4QkV1SDFERDdpcHhCbFhxc3RqM1RxYXEyN1Q4SFc
Vrb2ZBY3ZLMXo1THJNclpITzZhdGxDWlREUzJna2RjYWpZblcxYWNDc3lrbzViZjNZUzV3L3N3ZGR
tadXFDYnlveHAvVWx2cnZWcVZFcElEYzVjMVJhRmdkcVdDQ2NuM1Mvb21Bc2JWalFOU3RTYWdPTDU
hkYTErK1VWYmVEQUVTVWl6OE0xd09EditGelhzcTlaSW8wUUJ1TCthdFMydmhsUzdxVFlpc0pDQkY
EzWTJpTmpmRm1PMks3MDBCWE5Fd1FUaDVxQnowcjN0b2VYVkdKUVpISWVVU3BGVm5BS29XRFZiS0x
xyMzdGbndVUk9DbTNrNEZzZlVjaHRoa0R5TVVxcWRUcWROQXUxNW9uV3Bnamg4cXJ4RWJCMXQ4S2t
dkc084cEk1aDFTdFIxYzNHZz09")"+')')
}, function(program) {
var output;
var print = function(string) {
process.stdout.write('' + string + '\n');
};
try {
result = program();
print('')
if (typeof result == 'undefined' && result !== null) {
print('["ok"]');
} else {
try {
print(JSON.stringify(['ok', result]));
} catch (err) {
print('["err"]');
}
}
} catch (err) {
print(JSON.stringify(['err', '' + err]));
}
});
2021/04/29 09:52:18 onecomic.cli 172 [ERROR] download comicbook error. site=c
manhua comicid=12187 chapter_number=689
Traceback (most recent call last):
File "C:\Users\gao\PycharmProjects\mh_jiaoben\venv\lib\site-packages\onecom
cli.py", line 147, in download_main
chapter = comicbook.Chapter(chapter_number, ext_name=ext_name)
File "C:\Users\gao\PycharmProjects\mh_jiaoben\venv\lib\site-packages\onecom
comicbook.py", line 168, in Chapter
chapter_item = self.crawler.get_chapter_item(chapter_item)
File "C:\Users\gao\PycharmProjects\mh_jiaoben\venv\lib\site-packages\onecom
crawlerbase.py", line 320, in get_chapter_item
image_urls = self.get_chapter_image_urls(citem)
File "C:\Users\gao\PycharmProjects\mh_jiaoben\venv\lib\site-packages\onecom
site\cocomanhua.py", line 65, in get_chapter_image_urls
image_urls = ctx.eval(f'getArr("{data}")')
File "C:\Users\gao\PycharmProjects\mh_jiaoben\venv\lib\site-packages\execjs
bstract_runtime_context.py", line 27, in eval
return self.eval(source)
File "C:\Users\gao\PycharmProjects\mh_jiaoben\venv\lib\site-packages\execjs
xternal_runtime.py", line 78, in eval
return self.exec
(code)
File "C:\Users\gao\PycharmProjects\mh_jiaoben\venv\lib\site-packages\execjs
bstract_runtime_context.py", line 18, in exec

return self.exec(source)
File "C:\Users\gao\PycharmProjects\mh_jiaoben\venv\lib\site-packages\execjs
xternal_runtime.py", line 87, in exec
output = self._exec_with_pipe(source)
File "C:\Users\gao\PycharmProjects\mh_jiaoben\venv\lib\site-packages\execjs
xternal_runtime.py", line 108, in _exec_with_pipe
self._fail_on_non_zero_status(ret, stdoutdata, stderrdata)
File "C:\Users\gao\PycharmProjects\mh_jiaoben\venv\lib\site-packages\execjs
xternal_runtime.py", line 134, in _fail_on_non_zero_status
raise ProcessExitedWithNonZeroStatus(status=status, stdout=stdoutdata, st
r=stderrdata)
execjs._exceptions.ProcessExitedWithNonZeroStatus: (1, '', '[stdin]:1\nb'(fu
ion(program, execJS) { execJS(program) })(function() { \xef\xbb\xbfvar Cry
JS = require(\'crypto-js\')\n// var __READKEY = \'fw12558899ertyui\'
n\n\nfunction __cdecrypt(key, word) {\n var key = CryptoJS.enc.Utf8.parse
y);\n var decrypt = CryptoJS.AES.decrypt(word, key, {\n mode: CryptoJS.
e.ECB,\n padding: CryptoJS.pad.Pkcs7\n });\n return CryptoJS.enc.Utf8
ringify(decrypt).toString()\n};\n\nfunction decode_data(C_DATA, key, defau
key) {\n // console.log(C_DATA);\n // @see https://www.ohmanhua.com/js/cu
m.js\n C_DATA = CryptoJS.enc.Base64.parse(C_DATA).toString(\n CryptoJ
nc.Utf8);\n\n var KEY_list = [ \'fw122587mkertyui\', \'fw12558899ert
\',\n \'JRUIFMVJDIWE569j\' ];\n if (typeof default_key === \
tring\' && default_key){\n KEY_list.unshift(default_key);\n }\n i
key){\n KEY_list.unshift(key);\n }\n\n for (var index = 0; index <
Y_list.length; index++) {\n // @search if (typeof C_DATA != ...) { ev
@\n // https://www.ohmanhua.com/js/custom.js\\n try {\n
r DECRIPT_DATA = __cdecrypt(KEY_list[index],\n C_DATA);\n
if (DECRIPT_DATA)\n return DECRIPT_DATA;\n } catch
{\n console.log("decode_data error");\n }\n }\n}\n\n\nfu
ion decode(C_DATA) {\n C_DATA = decode_data(C_DATA);\n console.log(C_DATA
\n\n var mh_info, image_info;\n eval(C_DATA);\n mh_info.image_info = im
_info;\n // @see totalImageCount =\\n // parseInt(eval(base64[__Ox97c0e[0 ](__Ox97c0e[0x3]))) @\n // https://www.ohmanhua.com/js/manga.read.js\\n i
mh_info.enc_code1) {\n mh_info.totalimg = eval(decode_data(mh_info.enc_co
));\n }\n if (mh_info.enc_code2) {\n mh_info.imgpath = decode_data(mh
fo.enc_code2,\n // 2020/9/3 \xe6\x94\xb9\xe7\x89\x88\n
@see function __cr_getpice(_0xfb06x4a)\n "fw125gjdi9ertyui", "");\n
\n return mh_info;\n}\n\nfunction getArr(data) {\n var using_webp = fal
\n var base_URL = \'https://www.cocomanhua.com/\\\'\\n var chapter_data =
\n if (!chapter_data || !(chapter_data = decode(data))) {\n CeL.warn(wo
data.title + \' #\' + chapter_NO\n + \': No valid chapter data
!\');\n return;\n }\n// chapter_data.startimg often "1"\n var imag
O = parseInt(chapter_data.startimg) || 1;\n// \xe8\xa8\xad\xe5\xae\x9a
e5\xbf\x85\xe8\xa6\x81\xe7\x9a\x84\xe5\xb1\xac\xe6\x80\xa7\xe3
80\x82\n chapter_data.title = chapter_data.pagename;\n// chapter_data.ima
count = chapter_data.totalimg + image_NO - 1;\n\n// @see function __cr_getp
() @\n// https://www.ohmanhua.com/js/manga.read.js\\n var chapter_image_bas
ath = base_URL.replace(/:\\/\\/.+/, \'://\')\n // "img.mljzmm.c
\n + chapter_data.domain + "/comic/" + encodeURI(chapter_data.imgpath);
chapter_data.image_list = [];\n\n for (; image_NO <= chapter_data.totali
image_NO++) {\n // @see __cr.PrefixInteger()\n var image_url = chapt
image_base_path + (Array(4).join("0") + image_NO).slice(-4) + ".jpg";\n i
using_webp) {\n // @see cr.switchWebp()\n image_url += \'.web
';\n }\n chapter_data.image_list.push(image_url);\n }\n//\n// mh
fo = {\n// startimg: 1,\n// enc_code1: "aVp6aWlITE1XcGJmSllMd0Z2NFhIZz0
\n// mhid: "10330",\n// enc_code2: "dzNaUXJ5SXFUangvNFZDQzZPdjRFSGpsMEV
dtTFdNMUsyR2pXcHIzWVRuTGxqZlVYTkFwenhxWENDajVrYXlvS0ZOQkV1T0w3N0pDTDFneHhkblp
wyWWx4ank3c0tCZ3ZDUk05c1k9",\n// mhname: "\xe6\x9c\xaa\xe5\xa9\x9a\
\x88\xb8\xe7\x88\xb8",\n// pageid: 2823662,\n// pagename: "\xe4\
\x8c\xe5\x8d\x81\xe5\x87\xa0\xe4\xb8\xaa\xe5\xa3\xae\xe6\xb1\
",\n// pageurl: "1/205.html",\n// readmode: 3,\n// maxpreload: 5,\n
defaultminline: 1,\n// domain: "img.cocomanhua.com",\n// manga_size:
\n// default_price: 0,\n// price: 0\n// };\n// console.log(chapter

a.image_list);\n return chapter_data.image_list\n}\n\n// var data = "a29
l3RktIZSs2WGhPS3M4ZW1yNmhsaWowT0szeGZERTRTYmNhN1RPYTYxbmNWN0ZmV3VqL1ozMFkwZFZ
JlTU1vT2JVcEgyeW1nVVRVUmQ4OWJhNU55VkFaamp2ODYyZTFEQXQwYWM5eDBWbWxnSmdJUTJTd0N
dFUndPbFBWVFBwQ3E0NzY0SXpqZnlBdjJIM1ViK2J0Um1oZ1pQZTAyMS84dGloUDhWb21FOHVYTzR
YvZitDb3dicU1aWEFLQzJQd1A3NXlONkc4bmJiNzB5U2cxbFdwMjV0U1E3NXZQT1JwKzJwY1RFRFl
FOSFdCRUlOS0I1aFZJbVZtNlM0czZLd3Q5M1FuVU1zSFlWTGV0aFJHL0didWlJWWM4TldreHIyWnR
lYcmF2SHlBcEYzTTVHMTFPM295UWVLS3hKVGJrRXJ2YTFPeWtWQVVkaUhoc0hCdjVJV2RDdGIzZVd
tVQ1pISVRrSTBBWjRpUEhDZ1pRUm5TQXI2K3l3cnlreTJTclM5U0VMTVRISVJVRjJNQ3B2VnlxbDQ
I4blBxb2ViSUtRd0JFeWZhQ20rVDFMK1ZpbnVUMjNES0E0NmF5ckRsUnhJazJ6YUZ2UGNJVHU2a21
JKZlFjUnZsUXB6YmhyUWlpYi9HVW1ldFpHd2VTbjZlZk9VTWh3cmpLdkhNOXI2SGFQd2wvTU1TS1U
QxL0lFMGhXUyt6THRic0NaOVMxc1dNVUtsZ1VEOWdkWERyOEFib2tlbFVwRy9yekMvbEc0VHV2aHg
hiR0pNeFNMYXVMaTFWNEJJbzUxQ3ljWDBFVUMyWE9Gd1A5S3BBMHAvNWJIMlpXWjNKb3d3MDh2bXF
I1SnFIeHJZSmtKbXV6WFRrQU09";\n\n// console.log(getArr(data));\n\nreturn e
(\'(\'+"getArr(\\"TkNaL203RTR6Mk1ZaXh5bXVMRUU4VHlpM3REM29DeTU2QkxtU3dBY
V0JyakNhc1FQdDIvUXFNZ2puSFQ1dW12akN0YXlmS1pPMldZZmVjQ1ZSVVRISldtVWMyb01ONzlvb
OWNIU1hiQVdxUW1aVFFzSzVNYlo1M21ibDdDOXJOcTdWSEVBQ1lmSlF3UEVRVjZ0UlQwbUN4MDVaW
dUNOZ0EwY21PRWJoTlR2WFkzN1B0b2lTMGtmN0pqS0NrYzVadzRhUUVwL0dpUnJicmY4a2hxNDBtT
c2dXRXhHUXRoSXJ6UUgwWTZ2OFFaYjNZa0s4QkV1SDFERDdpcHhCbFhxc3RqM1RxYXEyN1Q4SFc5c
b2ZBY3ZLMXo1THJNclpITzZhdGxDWlREUzJna2RjYWpZblcxYWNDc3lrbzViZjNZUzV3L3N3ZGRjR
dXFDYnlveHAvVWx2cnZWcVZFcElEYzVjMVJhRmdkcVdDQ2NuM1Mvb21Bc2JWalFOU3RTYWdPTDUrW
YTErK1VWYmVEQUVTVWl6OE0xd09EditGelhzcTlaSW8wUUJ1TCthdFMydmhsUzdxVFlpc0pDQkY2R
WTJpTmpmRm1PMks3MDBCWE5Fd1FUaDVxQnowcjN0b2VYVkdKUVpISWVVU3BGVm5BS29XRFZiS0xFZ
MzdGbndVUk9DbTNrNEZzZlVjaHRoa0R5TVVxcWRUcWROQXUxNW9uV3Bnamg4cXJ4RWJCMXQ4S2txM
c084cEk1aDFTdFIxYzNHZz09\\")"+\')\')\n}, function(program) {\n var o
ut;\n var print = function(string) {\n process.stdout.write(\'\' +
ing + \'\\n\');\n };\n try {\n result = program();\n print(
'\')\n if (typeof result == \'undefined\' && result !== null) {\n
print(\'["ok"]\');\n } else {\n try {\n print(JSON.st
gify([\'ok\', result]));\n } catch (err) {\n print(\'["er
\');\n }\n }\n } catch (err) {\n print(JSON.stringify([\'
\', \'\' + err]));\n }\n});'\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^\n\nSyntaxError: Unexpected string\n at new Script (vm
:88:7)\n at createScript (vm.js:261:10)\n at Object.runInThisContext (v
s:309:10)\n at Object. ([stdin]-wrapper:10:26)\n at Module.

pile (internal/modules/cjs/loader.js:999:30)\n at evalScript (internal/pro
s/execution.js:94:25)\n at internal/main/eval_stdin.js:29:5\n at Socket
nonymous> (internal/process/execution.js:207:5)\n at Socket.emit (events.j
26:22)\n at endReadableNT (_stream_readable.js:1241:12)\n')

关于下载后的序号和格式转换

大佬是否能够改一下下载后的图片序号呢
现在是1、2、3、4……10……100,不过这样有时候在某些软件识别出来会乱序,变成1,11,12……2、21……这样子
如果一开始就排序是001、002……010……099、100就不会了

另外有些网站下载下来是webp格式,会不会考虑加一个格式转换?转换成PNG或者JPG?

快看漫画抓取失效了

貌似又可以了 因此改为建议
快看漫画目前抓取的是pc版 画质较差 分辨率为640p
而快看手机版画质比pc版要高 用手机版能抓取到的图片为750p
能否修改程序让它能够抓取到高画质版本图片呢?

不兼容Python 3.10

在3.10下无法运行,会报错,回退到3.9.9才正常。

运行代码示例

python -m onecomic -s bilibili -id mc30332 --all --cookies-path="bilibili.json"

报错信息:

Traceback (most recent call last):
  File "C:\Program Files\Python310\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Program Files\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\onecomic\__main__.py", line 3, in <module>
    from .cli import main
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\onecomic\cli.py", line 6, in <module>
    from .comicbook import ComicBook
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\onecomic\comicbook.py", line 19, in <module>
    from .crawlerbase import CrawlerBase
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\onecomic\crawlerbase.py", line 12, in <module>
    from .session import CrawlerSession
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\onecomic\session.py", line 4, in <module>
    import httpx
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\httpx\__init__.py", line 2, in <module>
    from ._api import delete, get, head, options, patch, post, put, request, stream
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\httpx\_api.py", line 4, in <module>
    from ._client import Client
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\httpx\_client.py", line 30, in <module>
    from ._transports.default import AsyncHTTPTransport, HTTPTransport
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\httpx\_transports\default.py", line 30, in <module>
    import httpcore
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\httpcore\__init__.py", line 1, in <module>
    from ._api import request, stream
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\httpcore\_api.py", line 5, in <module>
    from ._sync.connection_pool import ConnectionPool
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\httpcore\_sync\__init__.py", line 8, in <module>
    from .http2 import HTTP2Connection
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\httpcore\_sync\http2.py", line 7, in <module>
    import h2.connection
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\h2\connection.py", line 13, in <module>
    from hyperframe.frame import (
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\hyperframe\frame.py", line 17, in <module>
    from .flags import Flag, Flags
  File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\hyperframe\flags.py", line 14, in <module>
    class Flags(collections.MutableSet):
AttributeError: module 'collections' has no attribute 'Mut
```ableSet'

B漫电锯人无法提取

RT,叔叔现在在网页版隐藏了电锯人的主页和阅读器页,都会跳转到首页,只有app端可以看
请问作者大大还有提取的机会吗

请求支持bilibili漫画境外版资源下载

近期bilibili漫画新增了不少境外版漫画
这些漫画都是有些不和谐要素因此国内版都被和谐了很多内容的
不过境外版都是无修改无水印的(虽然购买的价格也是2倍)
使用梯子的话可以浏览到这些漫画
但是用onecomic下载就会提示错误内容,希望能修改支持一下这种的下载

cocomanhua抓取失效了

错误带码如下:

2021/07/31 21:18:32 onecomic.config 86 [INFO] loading config. config=config.ini
2021/07/31 21:18:32 onecomic.worker 19 [INFO] set worker. worker=4
Traceback (most recent call last):
File "C:\Python\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Python\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Python\oc\onecomic_main
.py", line 4, in
main()
File "C:\Python\oc\onecomic\cli.py", line 395, in main
comicbook.start_crawler()
File "C:\Python\oc\onecomic\comicbook.py", line 97, in start_crawler
self.refresh()
File "C:\Python\oc\onecomic\comicbook.py", line 100, in refresh
self.comicbook_item = self.crawler.get_comicbook_item()
File "C:\Python\oc\onecomic\site\cocomanhua.py", line 39, in get_comicbook_item
status = soup.find('span', text='状态').parent.a.text
AttributeError: 'NoneType' object has no attribute 'parent'

关于漫画柜的域名

目前漫画柜这个站有两个域名
一个是墙外网站 manhuagui.com(除了**ip我挂其他地方梯子都进不去包括香港)
一个是国内可以直接访问的 mhgui.com(除了部分和谐资源不显示外资源还是挺多的)
现在问题是可以访问主域名manhuagui的ip太少 而且下载的时候基本都提示无法访问(不知道是不是已经失效了还是ip被封了,这个站封ip很狠基本下几话漫画一个ip就被封一天了)
希望能够支持一下mhgui.com这个域名的下载 这样就可以很方便的下载到大部分漫画了

下面是下载时候的错误信息
2021/07/09 22:18:11 onecomic.worker 19 [INFO] set worker. worker=4
2021/07/09 22:18:11 onecomic.cli 292 [INFO] set proxy. socks5://127.0.0.1:4781
Traceback (most recent call last):
File "C:\Python\oc\onecomic\crawlerbase.py", line 257, in send_request
return session.request(method=method, url=url, **kwargs)
File "C:\Python\lib\site-packages\httpx_client.py", line 785, in request
return self.send(
File "C:\Python\lib\site-packages\httpx_client.py", line 871, in send
response = self._send_handling_auth(
File "C:\Python\lib\site-packages\httpx_client.py", line 907, in _send_handling_auth
response = self._send_handling_redirects(
File "C:\Python\lib\site-packages\httpx_client.py", line 943, in _send_handling_redirects
response = self._send_single_request(request, timeout)
File "C:\Python\lib\site-packages\httpx_client.py", line 977, in _send_single_request
(status_code, headers, stream, extensions) = transport.handle_request(
File "C:\Python\lib\site-packages\httpx_socks_sync_transport.py", line 43, in handle_request
socket = self._connect_via_proxy(
File "C:\Python\lib\site-packages\httpx_socks_sync_transport.py", line 84, in _connect_via_proxy
sock = ssl_context.wrap_socket(
File "C:\Python\lib\ssl.py", line 500, in wrap_socket
return self.sslsocket_class._create(
File "C:\Python\lib\ssl.py", line 1040, in _create
self.do_handshake()
File "C:\Python\lib\ssl.py", line 1309, in do_handshake
self._sslobj.do_handshake()
socket.timeout: _ssl.c:1105: The handshake operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "C:\Python\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Python\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Python\oc\onecomic_main
.py", line 4, in
main()
File "C:\Python\oc\onecomic\cli.py", line 395, in main
comicbook.start_crawler()
File "C:\Python\oc\onecomic\comicbook.py", line 97, in start_crawler
self.refresh()
File "C:\Python\oc\onecomic\comicbook.py", line 100, in refresh
self.comicbook_item = self.crawler.get_comicbook_item()
File "C:\Python\oc\onecomic\site\manhuagui.py", line 41, in get_comicbook_item
soup = self.get_soup(self.source_url)
File "C:\Python\oc\onecomic\crawlerbase.py", line 275, in get_soup
html = self.get_html(url, encoding=encoding, **kwargs)
File "C:\Python\oc\onecomic\crawlerbase.py", line 263, in get_html
response = self.send_request("GET", url, **kwargs)
File "C:\Python\oc\onecomic\crawlerbase.py", line 260, in send_request
raise URLException(msg) from e
onecomic.exceptions.URLException: NETWORK ERROR. can not open url: https://www.manhuagui.com/comic/1115/

禁漫天堂的图片切割规则又更改了

禁漫天堂的图片切割规则又更改了,下载以后的图片被切割的乱七八糟的

另外下载的时候,每集有一定概率下载无法成功

大佬能否修正一下,非常感谢。

包子漫画下载不完整

  • 包子漫画是分页显示的,一页最多显示50张图片,现在只能下载第一页
  • 后续页面的开始四张图片和前一页的最后四张图片是重复的
  • 我放三个例子,都是分了四页 123
  1. 下载过程中某些章节可能下载失败,我下了一本500多章的漫画,缺失了5章,不知道能不能做到一次就全部下载成功
    或者说下载完之后输出一些提示信息,至少让我知道有失败的(高级批量下载)

最后要谢谢作者,效果确实很棒!!!

抓取报错

$ python3.8 -m onecomic -s boylove --cookies-path="boylove.json" --output MyComicBook --all -id 3275
2023/01/29 00:00:49 onecomic.worker 19 [INFO] set worker. worker=4
2023/01/29 00:00:49 onecomic.cli 323 [INFO] load cookies success. boylove.json
Traceback (most recent call last):
  File "\Python.3.8\lib\runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "\Python.3.8\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "\Python.3.8\LocalCache\local-packages\Python38\site-packages\onecomic\__main__.py", line 4, in <module>
    main()
  File "\Python.3.8\LocalCache\local-packages\Python38\site-packages\onecomic\cli.py", line 442, in main
    comicbook.start_crawler()
  File "\Python.3.8\LocalCache\local-packages\Python38\site-packages\onecomic\comicbook.py", line 97, in start_crawler
    self.refresh()
  File "\Python.3.8\LocalCache\local-packages\Python38\site-packages\onecomic\comicbook.py", line 100, in refresh
    self.comicbook_item = self.crawler.get_comicbook_item()
  File "\Python.3.8\LocalCache\local-packages\Python38\site-packages\onecomic\site\boylove.py", line 61, in get_comicbook_item
    image_urls = [urljoin(self.SITE_INDEX, i) for i in item['imagelist'].split(',')]
KeyError: 'imagelist'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.