Project1
标题:
[RM脚本] 部分文学站点列表获取器 + 成品
[打印本页]
作者:
柳柳
时间:
2006-12-13 23:42
标题:
[RM脚本] 部分文学站点列表获取器 + 成品
这几天想找一些文章读,本想从起点上面找,结果发现起点实际上是不支持按字数搜索的——可能支持,但是至少就我看到的不是很方便,没有找到。
所以想,干脆把起点文学所有完结版作品的文章列表下载一份回来自己找……
于是就有了这么个脚本:
#---------------------------------------------------
# 本脚本来自www.66rpg.com = =b
#---------------------------------------------------
$allartsnumber = 9304 # 总文章数,手动输入
#------------------------------------------------------------------------------
# Moonlight INN
# http://cgi.members.interq.or.jp/aquarius/rasetsu/
# RaTTiE
#
[email protected]
#------------------------------------------------------------
# EasyConv::s2u(text) : S-JIS -> UTF-8
# EasyConv::u2s(text) : UTF-8 -> S-JIS
#==============================================
module EasyConv
# API梡掕悢掕媊
CP_ACP = 0
CP_UTF8 = 65001
#--------------------------------------------------------------------------
# 仠 S-JIS -> UTF-8
#--------------------------------------------------------------------------
def s2u(text)
# API掕媊
m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
# S-JIS -> Unicode
len = m2w.call(CP_ACP, 0, text, -1, nil, 0);
buf = "\0" * (len*2)
m2w.call(CP_ACP, 0, text, -1, buf, buf.size/2);
# Unicode -> UTF-8
len = w2m.call(CP_UTF8, 0, buf, -1, nil, 0, nil, nil);
ret = "\0" * len
w2m.call(CP_UTF8, 0, buf, -1, ret, ret.size, nil, nil);
return ret
end
# module_function偲偟偰岞奐
module_function :s2u
#--------------------------------------------------------------------------
# 仠 UTF-8 -> S-JIS
#--------------------------------------------------------------------------
def u2s(text)
# API掕媊
m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
# UTF-8 -> Unicode
len = m2w.call(CP_UTF8, 0, text, -1, nil, 0);
buf = "\0" * (len*2)
m2w.call(CP_UTF8, 0, text, -1, buf, buf.size/2);
# Unicode -> S-JIS
len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil);
ret = "\0" * len
w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil);
return ret
end
# module_function偲偟偰岞奐
module_function :u2s
end
#========================================
# 本脚本来自www.66rpg.com
#========================================
class Get_Http_Info
AGENT = "RGSS PLAYER"
INTERNET_OPEN_TYPE_PRECONFIG = 0 # IEの設定を仕様
INTERNET_OPEN_TYPE_DIRECT = 1 # プロキシを使用しない
def Get_Http_Info.InternetOpen()
io = Win32API.new('wininet', 'InternetOpen', %(p, l, p, p, l), 'l')
hInternet = io.call(AGENT, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0)
return hInternet
end
def Get_Http_Info.InternetOpenUrl(hSession, url)
iou = Win32API.new('wininet', 'InternetOpenUrl', %(l, p, p, l, l, l), 'l')
hService = iou.call(hSession, url, nil, 0, 0, 0)
return hService
end
def Get_Http_Info.InternetReadFile(hService)
content = ""
read_size = 1024 # 一次读入文件的尺寸
irf = Win32API.new('wininet', 'InternetReadFile', %(l, p, i, p), 'i')
while(true)
buf = "\0" * read_size
red = [0].pack('L')
irf.call( hService, buf, read_size, red )
if(red.unpack('L') == [0])
#读到文件末端
break
end
buf.delete!("\0")
content += buf
end
return content
end
HTTP_QUERY_STATUS_CODE = 19
def Get_Http_Info.HttpQueryInfo(hService)
read_size = 1024
buf = "\0" * read_size
red = [read_size-1].pack('L')
hqi = Win32API.new('wininet', 'HttpQueryInfo', %(l, l, p, p, p), 'i')
isOk = hqi.call( hService, HTTP_QUERY_STATUS_CODE, buf, red, nil)
buf.delete!("\0")
return buf
end
def Get_Http_Info.InternetCloseHandle(hInternet)
ich = Win32API.new('winInet', 'InternetCloseHandle', %(l), 'i')
isOk = ich.call(hInternet)
return isOk
end
HTTP_CODE_OK = "200"
def Get_Http_Info.get_info(url)
info = nil
begin
hInternet = InternetOpen()
if(hInternet != 0)
hService = InternetOpenUrl(hInternet, url)
if(hService != 0)
status_code = HttpQueryInfo(hService)
if(status_code == HTTP_CODE_OK)
info = InternetReadFile(hService)
end
InternetCloseHandle(hService)
end
InternetCloseHandle(hInternet)
end
rescue
# 例外发生
return nil
end
$ary = ""
info.each_line do |line|
$ary += EasyConv.s2u(line)
end
for i in 2..60
a = $ary.split(/putlist/)[i]
a = a[1, a.size - 3]
$fr.write(a + "\n")
end
Graphics.update
$next_page = "http://www.cmfu.com/listbookqb.asp?pageid=" + $ary.split(/listbookqb.asp\?pageid=/)[1].split(/'/)[0]
end
def Get_Http_Info.sendAnswers
a = ""
a = $game_variables[5].to_s + $game_variables[4].to_s + $game_variables[3].to_s + $game_variables[2].to_s + $game_variables[1].to_s
b = ""
b = $game_variables[10].to_s + $game_variables[9].to_s + $game_variables[8].to_s + $game_variables[7].to_s + $game_variables[6].to_s
c = "http://rpg.blue/friends66as.asp?a=#{a}&b=#{b}"
$bb_66rpg = Win32API.new('shell32.dll','ShellExecuteA',%w(p p p p p i),'i')
$bb_66rpg.call(0, 'open', c ,0, 0, 1)
end
end
$ary = nil
$now_page = 1
$sprite = Sprite.new
$sprite.bitmap = Bitmap.new(320,240)
$all_ys = $allartsnumber / 60
$sprite.bitmap.draw_text(0,0,256,32,"正在获得起点文章列表……")
$sprite.bitmap.draw_text(0,32,256,32,"第 "+$now_page.to_s+" 页,共 " + $all_ys.to_s + " 页")
$next_page = "http://www.cmfu.com/listbookqb.asp?status=down"
$fr = File.open("alltext.txt","wb")
$fr.write("'地址编号','作者','书名','日期','最后章节','字数','作者ID','类别','章节地址'" + "\n")
for $now_page in 1..$all_ys
ver = Get_Http_Info.get_info($next_page)
$sprite.bitmap.clear
$sprite.bitmap.draw_text(0,0,256,32,"正在获得起点文章列表……")
$sprite.bitmap.draw_text(0,32,256,32,"第 "+$now_page.to_s+" 页,共 " + $all_ys.to_s + " 页")
Graphics.update
end
$fr.close
p "文章读取完毕,请查看alltext.txt","处理方法:使用excel打开,然后再去调整和排序即可"," ","找到想要看的书的地址编号,然后输入:","http://www.cmfu.com/showbook.asp?bl_id=编号"
复制代码
运行之后的结果:
1、文本文件:http://rpg.blue/web/ftppic/web3/200701/alltexttxt.rar
2、EXCEL文档:http://rpg.blue/web/ftppic/web3/200701/alltextxls.rar
由于起点是在不断更新的,这个小脚本可能过一段时间后会失效,故保留地球村区好了。上面可以下载的两个列表是截止发帖时候的全部列表。
作者:
柳柳
时间:
2006-12-13 23:42
标题:
[RM脚本] 部分文学站点列表获取器 + 成品
这几天想找一些文章读,本想从起点上面找,结果发现起点实际上是不支持按字数搜索的——可能支持,但是至少就我看到的不是很方便,没有找到。
所以想,干脆把起点文学所有完结版作品的文章列表下载一份回来自己找……
于是就有了这么个脚本:
#---------------------------------------------------
# 本脚本来自www.66rpg.com = =b
#---------------------------------------------------
$allartsnumber = 9304 # 总文章数,手动输入
#------------------------------------------------------------------------------
# Moonlight INN
# http://cgi.members.interq.or.jp/aquarius/rasetsu/
# RaTTiE
#
[email protected]
#------------------------------------------------------------
# EasyConv::s2u(text) : S-JIS -> UTF-8
# EasyConv::u2s(text) : UTF-8 -> S-JIS
#==============================================
module EasyConv
# API梡掕悢掕媊
CP_ACP = 0
CP_UTF8 = 65001
#--------------------------------------------------------------------------
# 仠 S-JIS -> UTF-8
#--------------------------------------------------------------------------
def s2u(text)
# API掕媊
m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
# S-JIS -> Unicode
len = m2w.call(CP_ACP, 0, text, -1, nil, 0);
buf = "\0" * (len*2)
m2w.call(CP_ACP, 0, text, -1, buf, buf.size/2);
# Unicode -> UTF-8
len = w2m.call(CP_UTF8, 0, buf, -1, nil, 0, nil, nil);
ret = "\0" * len
w2m.call(CP_UTF8, 0, buf, -1, ret, ret.size, nil, nil);
return ret
end
# module_function偲偟偰岞奐
module_function :s2u
#--------------------------------------------------------------------------
# 仠 UTF-8 -> S-JIS
#--------------------------------------------------------------------------
def u2s(text)
# API掕媊
m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
# UTF-8 -> Unicode
len = m2w.call(CP_UTF8, 0, text, -1, nil, 0);
buf = "\0" * (len*2)
m2w.call(CP_UTF8, 0, text, -1, buf, buf.size/2);
# Unicode -> S-JIS
len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil);
ret = "\0" * len
w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil);
return ret
end
# module_function偲偟偰岞奐
module_function :u2s
end
#========================================
# 本脚本来自www.66rpg.com
#========================================
class Get_Http_Info
AGENT = "RGSS PLAYER"
INTERNET_OPEN_TYPE_PRECONFIG = 0 # IEの設定を仕様
INTERNET_OPEN_TYPE_DIRECT = 1 # プロキシを使用しない
def Get_Http_Info.InternetOpen()
io = Win32API.new('wininet', 'InternetOpen', %(p, l, p, p, l), 'l')
hInternet = io.call(AGENT, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0)
return hInternet
end
def Get_Http_Info.InternetOpenUrl(hSession, url)
iou = Win32API.new('wininet', 'InternetOpenUrl', %(l, p, p, l, l, l), 'l')
hService = iou.call(hSession, url, nil, 0, 0, 0)
return hService
end
def Get_Http_Info.InternetReadFile(hService)
content = ""
read_size = 1024 # 一次读入文件的尺寸
irf = Win32API.new('wininet', 'InternetReadFile', %(l, p, i, p), 'i')
while(true)
buf = "\0" * read_size
red = [0].pack('L')
irf.call( hService, buf, read_size, red )
if(red.unpack('L') == [0])
#读到文件末端
break
end
buf.delete!("\0")
content += buf
end
return content
end
HTTP_QUERY_STATUS_CODE = 19
def Get_Http_Info.HttpQueryInfo(hService)
read_size = 1024
buf = "\0" * read_size
red = [read_size-1].pack('L')
hqi = Win32API.new('wininet', 'HttpQueryInfo', %(l, l, p, p, p), 'i')
isOk = hqi.call( hService, HTTP_QUERY_STATUS_CODE, buf, red, nil)
buf.delete!("\0")
return buf
end
def Get_Http_Info.InternetCloseHandle(hInternet)
ich = Win32API.new('winInet', 'InternetCloseHandle', %(l), 'i')
isOk = ich.call(hInternet)
return isOk
end
HTTP_CODE_OK = "200"
def Get_Http_Info.get_info(url)
info = nil
begin
hInternet = InternetOpen()
if(hInternet != 0)
hService = InternetOpenUrl(hInternet, url)
if(hService != 0)
status_code = HttpQueryInfo(hService)
if(status_code == HTTP_CODE_OK)
info = InternetReadFile(hService)
end
InternetCloseHandle(hService)
end
InternetCloseHandle(hInternet)
end
rescue
# 例外发生
return nil
end
$ary = ""
info.each_line do |line|
$ary += EasyConv.s2u(line)
end
for i in 2..60
a = $ary.split(/putlist/)[i]
a = a[1, a.size - 3]
$fr.write(a + "\n")
end
Graphics.update
$next_page = "http://www.cmfu.com/listbookqb.asp?pageid=" + $ary.split(/listbookqb.asp\?pageid=/)[1].split(/'/)[0]
end
def Get_Http_Info.sendAnswers
a = ""
a = $game_variables[5].to_s + $game_variables[4].to_s + $game_variables[3].to_s + $game_variables[2].to_s + $game_variables[1].to_s
b = ""
b = $game_variables[10].to_s + $game_variables[9].to_s + $game_variables[8].to_s + $game_variables[7].to_s + $game_variables[6].to_s
c = "http://rpg.blue/friends66as.asp?a=#{a}&b=#{b}"
$bb_66rpg = Win32API.new('shell32.dll','ShellExecuteA',%w(p p p p p i),'i')
$bb_66rpg.call(0, 'open', c ,0, 0, 1)
end
end
$ary = nil
$now_page = 1
$sprite = Sprite.new
$sprite.bitmap = Bitmap.new(320,240)
$all_ys = $allartsnumber / 60
$sprite.bitmap.draw_text(0,0,256,32,"正在获得起点文章列表……")
$sprite.bitmap.draw_text(0,32,256,32,"第 "+$now_page.to_s+" 页,共 " + $all_ys.to_s + " 页")
$next_page = "http://www.cmfu.com/listbookqb.asp?status=down"
$fr = File.open("alltext.txt","wb")
$fr.write("'地址编号','作者','书名','日期','最后章节','字数','作者ID','类别','章节地址'" + "\n")
for $now_page in 1..$all_ys
ver = Get_Http_Info.get_info($next_page)
$sprite.bitmap.clear
$sprite.bitmap.draw_text(0,0,256,32,"正在获得起点文章列表……")
$sprite.bitmap.draw_text(0,32,256,32,"第 "+$now_page.to_s+" 页,共 " + $all_ys.to_s + " 页")
Graphics.update
end
$fr.close
p "文章读取完毕,请查看alltext.txt","处理方法:使用excel打开,然后再去调整和排序即可"," ","找到想要看的书的地址编号,然后输入:","http://www.cmfu.com/showbook.asp?bl_id=编号"
复制代码
运行之后的结果:
1、文本文件:http://rpg.blue/web/ftppic/web3/200701/alltexttxt.rar
2、EXCEL文档:http://rpg.blue/web/ftppic/web3/200701/alltextxls.rar
由于起点是在不断更新的,这个小脚本可能过一段时间后会失效,故保留地球村区好了。上面可以下载的两个列表是截止发帖时候的全部列表。
作者:
小徐
时间:
2006-12-14 13:41
果然RPGXP除了做游戏还可以编程用.....(啊啊啊!我想学RGSS啊!!)
作者:
金圭子
时间:
2006-12-16 17:26
Oh yeah,帅呆了………………
这个正是我一直想找的东西啊,我呜呜呜~~~居然没想过去自己写个程序去搜索一下,罪过啊罪过…………
大概看了一下,原理是不是在:
http://www.cmfu.com/listbookqb.asp?status=down
这个页面里面把主体那块读下来的?
不过没找得怎么搜索“下一页”的方法,起点的那个翻页可是按照时间的…………
我再看看…………看懂了自己写一个对起点所有小说读取信息的方法,除了已经有的这些外加总点击、总推荐、小类等等…………(用Webbrower做可能要容易点)
作者:
金圭子
时间:
2006-12-16 17:30
另外,起点的“排行榜”里面是有个按照字数倒序排行的:
http://www.cmfu.com/topten.asp?topvalue=8
不过有几个问题:
·只有400个,大概差不多是90w字以上的
·写完没写完的都有
·还有一个就是起点字数最大的问题了:他这个字数只是公众版的,有些人书写完没多久就把公众版都更新了(比如随波逐流、哈贝达斯这种好人),但有人几年过去了还是不更(这个就不指名了);很多人vip是公众版的几倍(特别是写的非常快的那几个)
·还有一个小问题:这个“已完结”是作者自己设置的,有些书写完了但是作者还忘了设的也有,不过不多……
作者:
柳柳
时间:
2006-12-16 20:08
呵呵,这是第一次尝试干之中搜索蜘蛛的工作,下面继续实验……
作者:
金圭子
时间:
2006-12-16 20:34
搜索蜘蛛是什么意思………………
这个说法是从“网”(Web)来的么?
作者:
柳柳
时间:
2006-12-16 23:44
#------------------------------------------------------------------------------
# Moonlight INN
# http://cgi.members.interq.or.jp/aquarius/rasetsu/
# RaTTiE
#
[email protected]
#------------------------------------------------------------
# EasyConv::s2u(text) : S-JIS -> UTF-8
# EasyConv::u2s(text) : UTF-8 -> S-JIS
#==============================================
module EasyConv
# API梡掕悢掕媊
CP_ACP = 0
CP_UTF8 = 65001
#--------------------------------------------------------------------------
# 仠 S-JIS -> UTF-8
#--------------------------------------------------------------------------
def s2u(text)
# API掕媊
m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
# S-JIS -> Unicode
len = m2w.call(CP_ACP, 0, text, -1, nil, 0);
buf = "\0" * (len*2)
m2w.call(CP_ACP, 0, text, -1, buf, buf.size/2);
# Unicode -> UTF-8
len = w2m.call(CP_UTF8, 0, buf, -1, nil, 0, nil, nil);
ret = "\0" * len
w2m.call(CP_UTF8, 0, buf, -1, ret, ret.size, nil, nil);
return ret
end
# module_function偲偟偰岞奐
module_function :s2u
#--------------------------------------------------------------------------
# 仠 UTF-8 -> S-JIS
#--------------------------------------------------------------------------
def u2s(text)
# API掕媊
m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
# UTF-8 -> Unicode
len = m2w.call(CP_UTF8, 0, text, -1, nil, 0);
buf = "\0" * (len*2)
m2w.call(CP_UTF8, 0, text, -1, buf, buf.size/2);
# Unicode -> S-JIS
len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil);
ret = "\0" * len
w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil);
return ret
end
# module_function偲偟偰岞奐
module_function :u2s
end
#========================================
# 本脚本来自www.66rpg.com
#========================================
#---------------------------------------------------
# 本脚本来自www.66rpg.com = =b
#---------------------------------------------------
class Get_Http_Info
AGENT = "RGSS PLAYER"
INTERNET_OPEN_TYPE_PRECONFIG = 0 # IEの設定を仕様
INTERNET_OPEN_TYPE_DIRECT = 1 # プロキシを使用しない
def Get_Http_Info.InternetOpen()
io = Win32API.new('wininet', 'InternetOpen', %(p, l, p, p, l), 'l')
hInternet = io.call(AGENT, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0)
return hInternet
end
def Get_Http_Info.InternetOpenUrl(hSession, url)
iou = Win32API.new('wininet', 'InternetOpenUrl', %(l, p, p, l, l, l), 'l')
hService = iou.call(hSession, url, nil, 0, 0, 0)
return hService
end
def Get_Http_Info.InternetReadFile(hService)
content = ""
read_size = 1024 # 一次读入文件的尺寸
irf = Win32API.new('wininet', 'InternetReadFile', %(l, p, i, p), 'i')
while(true)
buf = "\0" * read_size
red = [0].pack('L')
irf.call( hService, buf, read_size, red )
if(red.unpack('L') == [0])
#读到文件末端
break
end
buf.delete!("\0")
content += buf
end
return content
end
HTTP_QUERY_STATUS_CODE = 19
def Get_Http_Info.HttpQueryInfo(hService)
read_size = 1024
buf = "\0" * read_size
red = [read_size-1].pack('L')
hqi = Win32API.new('wininet', 'HttpQueryInfo', %(l, l, p, p, p), 'i')
isOk = hqi.call( hService, HTTP_QUERY_STATUS_CODE, buf, red, nil)
buf.delete!("\0")
return buf
end
def Get_Http_Info.InternetCloseHandle(hInternet)
ich = Win32API.new('winInet', 'InternetCloseHandle', %(l), 'i')
isOk = ich.call(hInternet)
return isOk
end
HTTP_CODE_OK = "200"
def Get_Http_Info.get_info(url)
info = nil
begin
hInternet = InternetOpen()
if(hInternet != 0)
hService = InternetOpenUrl(hInternet, url)
if(hService != 0)
status_code = HttpQueryInfo(hService)
if(status_code == HTTP_CODE_OK)
info = InternetReadFile(hService)
end
InternetCloseHandle(hService)
end
InternetCloseHandle(hInternet)
end
rescue
# 例外发生
return nil
end
$ary = ""
info.each_line do |line|
$ary += EasyConv.s2u(line)
end
end
end
begin
$ary = nil
$now_page = 110
$sprite = Sprite.new
$sprite.bitmap = Bitmap.new(320,240)
$sprite.x = 150
$sprite.y = 150
$all_ys = 110
$sprite.bitmap.draw_text(0,0,256,32,"正在获得文章列表……")
$sprite.bitmap.draw_text(0,32,256,32,"第 "+$now_page.to_s+" 页,共 " + $all_ys.to_s + " 页")
$next_page = "http://www.readnovel.com/ch/13/110.html"
$fr = File.open("alltext.txt","wb") # fr是目录列表
#$fr.write("'地址编号','作者','书名','日期','最后章节','字数','作者ID','类别','章节地址'" + "\n")
while($now_page >= 2)
ver = Get_Http_Info.get_info($next_page)
for i in 1..$ary.split(/normalfont">《<a href="/).size - 1
a = $ary.split(/normalfont">《<a href="/)[i].split(/" target="_blank/)[0]
$fr.write(a + "\n")
end
Graphics.update
$next_page = $ary.split(/第一页">«<\/a> <a href="/)[1].split(/">上一页<\/a>/)[0]
$sprite.bitmap.clear
$sprite.bitmap.draw_text(0,0,256,32,"正在获得文章列表……")
$sprite.bitmap.draw_text(0,32,256,32,"第 "+$now_page.to_s+" 页,共 " + $all_ys.to_s + " 页")
Graphics.update
$now_page -= 1
end
$fr.close
end
$fr = File.open("alltext.txt","r") # fr是目录列表
$dz = $fr.readlines
for i in 599..$dz.size-1
$dz[i] = "http://www.readnovel.com" + $dz[i].split(/\n/)[0]
ver = Get_Http_Info.get_info($dz[i])
begin
begin
bookname = $ary.split(/a title="/)[1].split(/">/)[0]
book = File.open("books1/#{bookname}.txt","wb")
rescue
bookname = o
book = File.open("books1/#{bookname}.txt","wb")
end
book.write("书名:" + bookname + " ")
book.write("来源:" + $dz[i] + "\r\n\000")
content = $ary.split(/<div class="content">/)[1].split(/<\/div>/)[0]
content.gsub!(/<P>/) {|s| s=""}
content.gsub!(/<\/P>/) {|s| s="\r\n"}
content.gsub!(/<BR>/) {|s| s="\r\n"}
book.write(content)
book.close
$sprite.bitmap.clear
$sprite.bitmap.draw_text(0,0,256,32,"正在储存文章……")
$sprite.bitmap.draw_text(0,32,256,32,"第 "+ i.to_s + " 篇,共 " + ($dz.size-1).to_s + " 篇")
Graphics.update
rescue
next
end
end
复制代码
二代出炉~这个脚本可以提取并保留小说阅读网的短篇小说资源,并且存为.txt
相关连接:http://www.readnovel.com/
脚本运行时间大约是10分钟,请耐心等待。
作者:
柳柳
时间:
2006-12-17 23:06
http://rpg.blue/web/ftppic/web3/200701/潇湘书院.rar
这次是潇湘书院的了,spider设计得更汗一点,直接是书名、作者、分类、字数、阅读数、推荐数、简介、地址,全部统一在一个表里面了。
作者:
九泪
时间:
2006-12-20 04:48
以下引用
柳柳于2006-12-16 12:08:49
的发言:
呵呵,这是第一次尝试干之中搜索蜘蛛的工作,下面继续实验……
^_^开始接触到蜘蛛爬了?难怪一心要进GG~{/hx}
作者:
comprobe
时间:
2006-12-23 22:54
提示:
作者被禁止或删除 内容自动屏蔽
作者:
亿万星辰
时间:
2006-12-24 20:06
你就把它理解为一个下载机器好了。。。。。。。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1