|
本帖最后由 ldlcau 于 2010-3-15 08:23 编辑
修改了三个文件 见附件baike-2010-3-10.rar
baike-2010-3-15.rar
(32.67 KB, 下载次数: 114)
增加文件bk3.asp用于更新现有数据。设置更新的词条最少编辑次数,编辑次数(gxcs)超过此的则更新,请修改表baike添加字段ygx,类型int.
表结构有变动,请按照建表语句来建表
由于百度百科经常更换样式,下载百度百科可能会出现无法下载的现象,请修改bk2.asp。
建表语句
CREATE TABLE [dbo].[baike] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[title] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[leibie] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[content] [text] COLLATE Chinese_PRC_CI_AS NULL ,
[gx] [smallint] NULL ,
[bid] [int] NULL ,
[ispic2] [smallint] NULL ,
[gxtime] [datetime] NULL ,
[bjtime] [datetime] NULL ,
[gxcs] [int] NULL ,
[bangzhu] [int] NULL ,
[ispic] [int] NULL ,
[tz] [int] NULL ,
[pid] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[yc] [int] NULL
[ygx] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
修改了部分内容,发现运行中有错误的请重新下载.
支持批量文本导入,可以建立个人的百科。
最后修改时间:2010-3-15
需要环境:sqlserver2000+iis
下载更新百度百科, 硬盘空间最少6G,NTFS格式。网络环境:保证24小时不间断。(仅仅是个人数据库不需要)
制作方法:
本程序除可以下载更新百度百科外,也支持批量导入文本文件,建立个人的数据库。
一、建立两个网页服务器
http://127.0.0.1 正常浏览网页所用的服务器
http://127.0.0.1:111 更新数据的 iis服务器,注意在server服务器版操作系统才支持建立多个web服务器(仅仅是个人数据库不需要)
都指向同一目录
index.asp 首页、浏览、添加、修改、检索
bk2.asp 或 index3.asp 更新百科数据文件(仅仅是个人数据库不需要,可以删除)
dsn.asp 数据库连接文件
js.xml 保存更新进度数据,注意ntfs下要设置为所有成员均可修改。
二、建表
表名 baike 参见上面的建表语句
sql安装时验证方式要采用混合模式
请注意一定要把数据库和日志设在ntfs分区,数据库大小不限,要保证剩余磁盘空间大于6G。
数据库设置里设为自动收缩数据库文件。
(也可利用查询分析器导入baike.sql)
三、下载更新数据(仅仅是个人数据库不需要)
http://127.0.0.1:111/index3.asp更新数据,更新过程中请不要关闭index3.asp。
如果下载数据出错,请检查bk2.asp,使用response.end命令检查输出是否正确。
可以批量导入txt文件或htm文件,txt文件或htm文件放在网站txt目录下,可以一次性导入多条txt文件或htm文件,txt文件或htm文件的标题作为title,txt文件的内容写入content。导入前请用工具将文件名改为中文。
支持图片下载,需要下载图片时,将bk2.asp中的qt=0改为qt=1即可。
四、导出txt
选择导出到txt,选择用一条查询命令导出数据,
输入查询语句:“ select title,content from baike where not(title like '%/%') ”(不含引号)
下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。
点击转换,选择转换。点击转换选项,使用下面的转换语句:
Function Main()
DTSDestination("title") = replace(replace(trim(DTSSource("title")),chr(9),""),chr(10),"")&vbcrlf
DTSDestination("content") = replace(DTSSource("content"),"</>","")&vbcrlf&"</>"
Main = DTSTransformStat_OK
End Function
确定后导出。
--------------
------------
导出带图片的内容方法
在企业管理器图形界面执行
1、选择导出到txt,选择用一条查询命令导出数据,导出sql语句
===================================
select title,bid,ispic,pid,content from baike where not(title like '%/%')
===================================
2、
下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。
点击转换,选择转换。点击转换选项,使用下面的转换语句:
===================================
Function Main()
DTSDestination("title") = UTF2GB(Replace(Replace(trim(DTSSource("title")),chr(9),""),chr(10),""))&vbcrlf
DTSDestination("content") =HTMLEncode6(DTSSource("content"),DTSSource("ispic"),DTSSource("bid"),DTSSource("pid"))&vbcrlf&"</>"
Main = DTSTransformStat_OK
End Function
function HTMLEncode6(fString,ispic,bid,pid)
if isnull(fString) or fString="" then
HTMLEncode6 =" "
exit function
end if
if isnull(ispic) or ispic="" then ispic=0
if isnull(bid) or bid="" then bid=1
if isnull(pid) then pid=""
fString=trim(fString)
fString ="|||||"&fString
fString = Replace(fString, "|||||<br> <br>","")
fString = Replace(fString, "|||||","")
fString = Replace(fString, "</>", "")
fString = Replace(fString, "<a href=#", "<A HREF=entry://#")
fString = Replace(fString, " >", ">")
fString = Replace(fString, "<br> <br>","")
fString = Replace(fString, "<br> <br>","<br>")
fString = Replace(fString, "<br><br>","<br>")
if ispic=1 then
fString ="<img src="&CHR(34)&"file:///down/"&int(trim(bid)/10000)&"/"&trim(bid)&".jpg"&CHR(34)&" border=0><br>"&fString
elseif ispic=2 then
fString ="<img src="&CHR(34)&"file:///down2/"&trim(pid)&".jpg"&CHR(34)&" border=0><br>"&fString
end if
HTMLEncode6 = fString
end function
function UTF2GB(UTFStr)
tempUTFStr=UTFStr
UTFStr=replace(UTFStr,"&","&")
UTFStr=replace(UTFStr,"・","·")
UTFStr=replace(UTFStr,"‧","·")
UTFStr=replace(UTFStr,"'","’")
UTFStr=replace(UTFStr,"‎","")
if len(trim(UTFStr))>0 then
UTF2GB=UTFStr
else
UTF2GB=tempUTFStr
end if
end function
===================================
3.转换辞典
制作图片文件时将图片文件夹下的那个隐藏文件Thumbs.db文件删除
在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的
所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下
五、转换mdict
原始格式:选mdict(html)
编码方式:
文件类型ansi,编码方式选GBK
文件类型unicode,编码方式选utf-16
即可
六、清除临时文件(仅仅是个人数据库不需要)
更新数据时,会在系统盘windows/temp下产生临时ie文件,请定时删除
七、收缩数据库日志文件(数据库不是太大没必要进行)
收缩数据库文件(如果不压缩,数据库的文件不会减小)
查询管理器里执行
DUMP TRANSACTION 库名 WITH NO_LOG
BACKUP LOG 数据库名 WITH NO_LOG
然后
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
八、导出时删除标题重复的数据
select title,content from baike where id in(SELECT MAX(id) AS id FROM baike GROUP BY title)
[ 本帖最后由 ldlcau 于 2009-1-6 10:11 编辑 ] |
评分
-
1
查看全部评分
-
|