登陆论坛 | 搜索 站点首页 | 新闻主题 | 繁體控制面板 | 会员 | 帮助 
本版公告:
OX163软件页临时域名http://shj.ugschina.com/163/

 UGS China >> 『OX163版务』 >> [原创]PIXIV脚本

论坛短信(0 新)
回复本帖发表新帖发起投票

  帖子主题:  [原创]PIXIV脚本

( 查看:11950 ) 字号:  
visceroid

档案
帖子 短信

等级:
经验:258
帖子:50
注册:2009-8-13
状态:离线
发表于 2010-2-23 22:20:32 - 引用  主楼

hein大,好久不见了{/13}
最近有空,把pixiv的脚本用正则表达式重写了一遍,加上识别企划页面(response.php)
应该差不多通吃了吧,求测试(不过最近pixiv人多了,繁忙时段都是蜗速)

[attachtype=rar]attach.asp?id=335[/attachtype]

原来的脚本有bug,比如下载这个人的:
http://www.pixiv.net/member.php?id=230836
用深入模式只能下到第一个漫画之前的那几幅单张。


[本贴由作者于 2010-2-23 22:21:38 最后编辑]
来源:219.*.*.*
   
hein

档案
帖子 短信

头衔:礫
荣誉:管理员
威望:100
等级:
经验:2268
帖子:1940
注册:2005-5-15
状态:离线
发表于 2010-2-23 23:18:58 - 引用  2楼

提个意见,能不能选框一上来就问,不要等刷好pixiv首页再问~~~这样比较快

还有就是不知道retry都保留了吗,因为pixiv有时候会下不了,我留了重试,如果没有图一个页面重试2-3次,还有就是那个rename_utf8不知道有没有给文件名用一下,保存文件不容出错

另外那个最后分析好了的提醒就不用吧~~~~~~顶多在深入分析的时候添加这个提醒吧



正则我基础东西还是不是很理解

来源:222.*.*.*
   
hein

档案
帖子 短信

头衔:礫
荣誉:管理员
威望:100
等级:
经验:2268
帖子:1940
注册:2005-5-15
状态:离线
发表于 2010-2-23 23:26:35 - 引用  3楼

深入模式,太慢,我现在想要给OX163增加一个下载文件出错n次以后的判断脚本系统和下载完毕以后的判断已经下载好的文件的脚本系统,用来重现装载分析脚本的函数以替换或者增加下载列表,并重新下载
用来应对PIXIV的图片不存在问题和eht的图片重现刷新nl=1的问题

想听听你的意见,我还线把源代码公开,不知道有谁愿意重新开发多线程,下载模块,任务模块,和脚本模块分开的
我的代码很乱,不是科班出身,所以不知道大家能看懂吗

来源:222.*.*.*
   
visceroid

档案
帖子 短信

等级:
经验:258
帖子:50
注册:2009-8-13
状态:离线
发表于 2010-2-23 23:56:50 - 引用  4楼

rename有用到,retry没做;具体功能应该都全了吧,我是自己重写的{/13}
那个bug就是如我所说,不完全,还有就是有时候会有jpg_数字这样的扩展名,把下划线后面都当成扩展名了
具体哪里的问题恐怕只有你知道了,呵呵,一堆的InStr
正则真的是很强大啊,先不说表示能力,光代码的可读性就提升不少
深入模式的确不是办法,还是应该不管三七二十一先请求,发现错误再程序内部处理,或者给脚本提供一个接口file_error_fall_back让脚本处理

来源:219.*.*.*
   
visceroid

档案
帖子 短信

等级:
经验:258
帖子:50
注册:2009-8-13
状态:离线
发表于 2010-2-24 0:01:19 - 引用  5楼

[quote][b]以下引用[i]hein于2010-2-23 23:18:58[/i]的发言:[/b]

提个意见,能不能选框一上来就问,不要等刷好pixiv首页再问~~~这样比较快

还有就是不知道retry都保留了吗,因为pixiv有时候会下不了,我留了重试,如果没有图一个页面重试2-3次,还有就是那个rename_utf8不知道有没有给文件名用一下,保存文件不容出错

另外那个最后分析好了的提醒就不用吧~~~~~~顶多在深入分析的时候添加这个提醒吧[/quote]

可以的,我看一下怎么加retry,改好了再给你

来源:219.*.*.*
   
hein

档案
帖子 短信

头衔:礫
荣誉:管理员
威望:100
等级:
经验:2268
帖子:1940
注册:2005-5-15
状态:离线
发表于 2010-2-24 0:05:38 - 引用  6楼

我修改2楼了,提个建议~~~~~帮忙加上个retry吧,现在pixiv太慢了,长时间列表必定会有问题,加上一个url有2-3次retry比较好

脚本已经更新了~~~~~

正则嘛~~~没办法,以前大学 学vb6和c++,没有正则功能………于是懒的学了,感觉搞得我累~~~~{/10}

来源:222.*.*.*
   
visceroid

档案
帖子 短信

等级:
经验:258
帖子:50
注册:2009-8-13
状态:离线
发表于 2010-2-24 13:45:43 - 引用  7楼

改好了,应该没问题
[attachtype=rar]attach.asp?id=338[/attachtype]


[本贴由作者于 2010-2-24 17:14:55 最后编辑]

来源:219.*.*.*
   
hein

档案
帖子 短信

头衔:礫
荣誉:管理员
威望:100
等级:
经验:2268
帖子:1940
注册:2005-5-15
状态:离线
发表于 2010-2-25 1:52:34 - 引用  8楼

OK
我更新好了

来源:218.*.*.*
   
dryadb

档案
帖子 短信

等级:
经验:24
帖子:21
注册:2009-10-1
状态:离线
发表于 2010-3-2 10:41:50 - 引用  9楼

我有问题!!

批量下载 会先创出 pixiv.vbs_vbscript_UTF-8 这个资料夹
在资料夹才开始创造 绘师 资料夹开始下载图片是吧

我觉得不方便 所以 想知道怎么修改绘师的资料夹创造方式
也就是变成ID在前面绘师在后面的资料夹,[id]绘师
对我来说 满方便
这次的脚本我找不到在哪修改 资料夹创造公式…
希望能指教…
= = 不然我又得重来一遍下载…天啊!!!不要啊~~

来源:124.*.*.*
   
hein

档案
帖子 短信

头衔:礫
荣誉:管理员
威望:100
等级:
经验:2268
帖子:1940
注册:2005-5-15
状态:离线
发表于 2010-3-2 12:09:43 - 引用  10楼

文件夹建立是程序整合的,因为要通用其他的脚本,而不是仅仅为PIXIV服务的,所以暂时还不能做到仅对一个网站单独定义文件夹命名的方式

选择保存文件夹的时候请自己手动建立吧,或者打开程序设置中,常规栏里面“以网页地址作为目录”的选项

来源:222.*.*.*
   
dryadb

档案
帖子 短信

等级:
经验:24
帖子:21
注册:2009-10-1
状态:离线
发表于 2010-3-2 16:21:14 - 引用  11楼

不是吧…
我记得之前的脚本里还能改成我想要的下载到的资料夹命名方式…
这点在上次更新的脚本里有…
我刚刚去看了一下 并没有之前那个指令
好像是删除了…
选择保存文件夹的时候请自己手动建立吧,或者打开程序设置中,常规栏里面“以网页地址作为目录”的选项
首先第1
选择时,我是一次下载所有绘师的图片…也就是以[id]绘师为命名的资料夹
也就是→创出"pixiv.vbs_vbscript_UTF-8"资料夹→创出 "[id]绘师"资料夹→开始下载

第2
更新脚本後现在是
创出"pixiv.vbs_vbscript_UTF-8"资料夹→创出"绘师"资料夹→开始下载
使用“以网页地址作为目录”的选项,并没有解决我的问题
会变成
创出"pixiv.vbs_vbscript_UTF-8"资料夹→创出 "以网页地址作为目录"资料夹→创出"绘师"资料夹→开始下载

我想要在脚本更动一部份指令
就是在关於 创出"绘师"资料夹 这项指令
把他改成 创出"[id]绘师"资料夹

这样不行吗?
上次脚本还能改… 至少我找到那项指令…
但这次的脚本我找不到原本的指令,似乎被改掉了
所以才来求更改指令的位置,让我自行去更改

来源:124.*.*.*
   
hein

档案
帖子 短信

头衔:礫
荣誉:管理员
威望:100
等级:
经验:2268
帖子:1940
注册:2005-5-15
状态:离线
发表于 2010-3-2 17:08:36 - 引用  12楼

哦,我知道了,就是要添加一个ID在前面对吧

这次脚本是LZ直接重写的,我没参与,所以不太清楚,到时候我修改一下就行了

来源:222.*.*.*
   
visceroid

档案
帖子 短信

等级:
经验:258
帖子:50
注册:2009-8-13
状态:离线
发表于 2010-3-2 18:46:30 - 引用  13楼

hein大赶快开源吧{/13}加个自定义文件名格式功能……

dryadb你要的版本:
[attachtype=rar]attach.asp?id=342[/attachtype]

我加了个超过重试次数的提示框,hein大也更新一下:
[attachtype=rar]attach.asp?id=343[/attachtype]


[本贴由作者于 2010-3-2 19:00:31 最后编辑]

来源:219.*.*.*
   
hein

档案
帖子 短信

头衔:礫
荣誉:管理员
威望:100
等级:
经验:2268
帖子:1940
注册:2005-5-15
状态:离线
发表于 2010-3-2 20:49:30 - 引用  14楼

visceroid你告诉我dryadb要的版本和下面一个有什么区别?

我要更新为dryadb要的那个版本,那个画师文件夹命名格式比较合理好用

还有就是,你压缩的文件都带NTSC安全信息,要复制到fat32上面复制回来才能用,不然更改权限超级复杂,rar把那个写入权限的功能关闭吧

---------------------------
自定义文件名格式?本来就支持啊
jpg |http://www.spymac.com/upload/2007/09/28/XmBhIoPMTu|aaa.jpg|aaaadsfsdfsfdsf
文件格式(可为空)|文件下载连接 |文件名 |文件描述(可不填写,留空)

(程序会自动判断文件名正确性,文件格式不为空以文件格式为准,两者都空以连接为准,不能含有“|”)

来源:218.*.*.*
   
visceroid

档案
帖子 短信

等级:
经验:258
帖子:50
注册:2009-8-13
状态:离线
发表于 2010-3-2 21:43:35 - 引用  15楼

我的意思是指做到GUI里面让用户自定义而不是在脚本里面改{/0}

文件夹名称是rename_str,SubMatches(n)是指第n个子匹配,第0个是id,第1个是画师名,第2个是画师的主页(我把它当描述)
[CODE]For Each match In matches
link_str = root_str & "/member_illust.php?id=" & match.SubMatches(0)
rename_str = rename_utf8(match.SubMatches(1))
description_str = match.SubMatches(2)
return_albums_list = return_albums_list & "0||" & link_str & "|" & rename_str & "|" & description_str & vbCrLf
Next[/CODE]
还有我把含有@号的画师名@后面的内容都扔掉了,因为大多是活动场地等无用信息,要改的话可以通过name_filter_str这个变量


[本贴由作者于 2010-3-2 21:44:45 最后编辑]

来源:219.*.*.*
   
dryadb

档案
帖子 短信

等级:
经验:24
帖子:21
注册:2009-10-1
状态:离线
发表于 2010-3-2 22:08:42 - 引用  16楼

感谢visceroid跟hien的帮助~
不过问一下
怎么我下的那个档,解压後怎么被告知"存取被拒"了 = =
能不能再重新更新一下?

来源:124.*.*.*
   
visceroid

档案
帖子 短信

等级:
经验:258
帖子:50
注册:2009-8-13
状态:离线
发表于 2010-3-2 22:19:25 - 引用  17楼

真的是“悲剧”{/10}
[attachtype=rar]attach.asp?id=344[/attachtype]
这个应该好了

[attachtype=rar]attach.asp?id=345[/attachtype]


[本贴由作者于 2010-3-2 22:20:43 最后编辑]

来源:219.*.*.*
   
hein

档案
帖子 短信

头衔:礫
荣誉:管理员
威望:100
等级:
经验:2268
帖子:1940
注册:2005-5-15
状态:离线
发表于 2010-3-2 23:08:04 - 引用  18楼

更新了,visceroid你可以看一下我修改的内容,对一些判断做了些调整,添加了个brief_mode_tf参数,以及一些“&brief_mode=t”或者“&brief_mode=f”的参数
为了解多多个画师下载,需要不断手动点确定的问题

因为不是很熟悉你的代码,所以修改上可能会有bug

来源:218.*.*.*
   
visceroid

档案
帖子 短信

等级:
经验:258
帖子:50
注册:2009-8-13
状态:离线
发表于 2010-3-3 0:55:29 - 引用  19楼

打上一大段结果没了{/10}
长话短说吧,脚本的接口现在划分得不太恰当,脚本应该只负责分析传来的htm,其他留给主程序处理(例如重试、选择方式、报告完成)
把主程序内部的参数放到url里传来传去就耦合了,不安全(容易混淆真正的url)
还有return_download_url这个函数应该只在第一次分析(就是用户输入的未经处理的url)时调用,之后由脚本产生,而不是打开每个相册调用一次,只要确保脚本返回正确url就行了


[本贴由作者于 2010-3-3 0:55:48 最后编辑]

来源:219.*.*.*
   
hein

档案
帖子 短信

头衔:礫
荣誉:管理员
威望:100
等级:
经验:2268
帖子:1940
注册:2005-5-15
状态:离线
发表于 2010-3-3 1:47:16 - 引用  20楼

我不是程序员,所以想法可能都比较古怪。索一下我当时的构思:
主程序里每次album和list的分析是相对独立的,参数不共用,主要是遇到过有些网站在引用页,cookies等2次内容不一样的情况,以及中间队列表操作的问题
其次,主程序内部参数可变性小,如果遇到有些特别的网站,就需要更新主程序了

所以,我本来写这个小程序的目的就是能通过脚本实现的,就不修改主程序,尽量交给外部的脚本编译器完成
我从这出发点开始写的,第一个版本是2007.10.4的0.3.2
然后一直到现在,其实基本没改过主函数部分,每次升级也不影响对脚本向下兼容,即便是0.3.2的第一批脚本也能在现在的版本中使用
自己觉得对于一个根本不懂什么编程概念的人这样应该算挺成功了,就算是ght和pixiv这种怪怪的或者复杂的站点,至少可以不改变主程序来实现很多事情
所以,虽然可能不符合很多编程的基本概念,还是希望能从这个出发点来完善吧

对于你的看法,我很赞同,return_download_url这个函数只在第一次分析
不过我还是很小聪明的利用了自己主程序的特性,添加了一个参数,这个参数利用了主程序每次运行时参数重值的特性,虽然有个自加参数,但是利用只在第一次分析的return_download_url来确认与清除它

呵呵,我还是希望能在尽量不修改主程序让主程序少干事情的情况下运行,毕竟主程序我写的不怎么样,而且这个参数是给脚本用用来分析页面用的,主程序也用不到它
不知道visceroid能读懂我的意思吗,我的表达能力不是很好{/14}

我的主程序代码放出来,我希望有人能写出更好的东西~~~~~~~哈哈,当然,前提是希望脚本向下兼容就行了

来源:218.*.*.*
   
 

  回复主题:[原创]PIXIV脚本
属性与设置

· 帖子字数:
  最大 32768 字符

· 剩余字符:
  

· UBB设置:
  
  查看UBB使用帮助

· HTML: 未启用

    缩小文本框 扩大文本框
                      
 

当前风格:UGS-China 风格制作:hein 程序内核:Spb 4.55(MOD) 执行时间:62.0 毫秒 页面装载: