TA的每日心情 | 开心 2018-10-17 09:01 |
---|
签到天数: 18 天 [LV.4]偶尔看看III
|
本帖最后由 ldlcau 于 2010-3-15 08:23 编辑
3 Y$ Z. G+ v% \5 Q
" H' O/ X% b, s2 [; `修改了三个文件 见附件baike-2010-3-10.rar 6 _+ M$ M& K" I" _
增加文件bk3.asp用于更新现有数据。设置更新的词条最少编辑次数,编辑次数(gxcs)超过此的则更新,请修改表baike添加字段ygx,类型int.. Z2 N% s* a& s* E$ g5 Y5 U! n
表结构有变动,请按照建表语句来建表. N# h8 N" `% L$ y$ d
由于百度百科经常更换样式,下载百度百科可能会出现无法下载的现象,请修改bk2.asp。- ~! P! N7 X$ i# ]7 h3 S. V6 K
7 M0 b! Z5 T9 I& e, w
建表语句
0 B( x2 \: I- C6 v( p* ?CREATE TABLE [dbo].[baike] (
/ k) i* O' K) S! e. v$ ? [id] [int] IDENTITY (1, 1) NOT NULL ,
9 x5 ? \; G& g- y [title] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
( ]6 g. k0 Q2 M; l [leibie] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
4 `: i8 j+ {: K9 `( R$ H" _, u4 ^$ ?7 Y [content] [text] COLLATE Chinese_PRC_CI_AS NULL ,
9 v$ q9 p+ ]' N% G% L# K# h [gx] [smallint] NULL ,, W3 e- i8 K/ J6 r* m
[bid] [int] NULL ,
: i, [. _& K4 `4 z% j$ O [ispic2] [smallint] NULL ,
% h5 |! S/ W V+ g* P# L [gxtime] [datetime] NULL ,
/ V+ x" V3 G/ ~- ?- M) D" @( s% H2 d0 P [bjtime] [datetime] NULL ,
1 h& P$ M# U* j) h& N% @$ Z [gxcs] [int] NULL ,
" U' R- S/ ?% V, @/ E% K4 t- x: O [bangzhu] [int] NULL ,
9 ^& x r) G+ Z$ z: P [ispic] [int] NULL ,' \( {" E$ n) x0 D5 [7 U$ e
[tz] [int] NULL ,
! x( G6 C8 w) N [pid] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
' t9 s4 e5 e3 K0 ^/ n" k [yc] [int] NULL / r' ~* u! o% L7 O
[ygx] [int] NULL
; d3 Y" X3 a4 V2 T1 A# ?) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
% |1 B; ?/ n$ L( E* N M修改了部分内容,发现运行中有错误的请重新下载.
5 Q+ h( N& Y; _# t 支持批量文本导入,可以建立个人的百科。0 d1 U7 `2 Q1 a+ T( r7 O3 D
% _; y* R8 o& m0 v% W 最后修改时间:2010-3-15
! e* s) b3 J8 R: X6 F8 E; v) h# K& y
需要环境:sqlserver2000+iis
" V8 l, Y5 d3 x' d7 p7 C4 ~; b下载更新百度百科, 硬盘空间最少6G,NTFS格式。网络环境:保证24小时不间断。(仅仅是个人数据库不需要)% {9 d0 @) h7 ~# d5 A" v! x
6 d( P9 Q$ k1 M; o- G( a4 B/ M" s制作方法:
' D' L+ }" b7 F4 e7 ?7 S
. Z% g- \2 q3 b7 ?4 J) C3 L! P' B本程序除可以下载更新百度百科外,也支持批量导入文本文件,建立个人的数据库。
# S4 e# \' M' ?! G一、建立两个网页服务器
! m6 y+ H7 U: ~4 chttp://127.0.0.1 正常浏览网页所用的服务器! W! J; o0 I, a, M/ n
http://127.0.0.1:111 更新数据的 iis服务器,注意在server服务器版操作系统才支持建立多个web服务器(仅仅是个人数据库不需要)2 L" b! m4 z2 @* e7 y% S
都指向同一目录# o( t- a6 ^' v. G% T9 J8 I% v- }
index.asp 首页、浏览、添加、修改、检索7 O: i% V; ~2 V" u/ {2 p1 w
bk2.asp 或 index3.asp 更新百科数据文件(仅仅是个人数据库不需要,可以删除)4 A" `9 p/ J; K( u5 _! N
dsn.asp 数据库连接文件! N. @; M8 P6 c# F: ?
js.xml 保存更新进度数据,注意ntfs下要设置为所有成员均可修改。+ x; N: s9 m! c) `5 Y E) y! ?! @2 M
- \+ v: o- C2 O# T+ f; o2 s
二、建表
( c& m% b. X% h. j! @; [. \表名 baike 参见上面的建表语句
- f; M& t( m, Z2 [, ]sql安装时验证方式要采用混合模式# [+ |7 c6 p! k$ b; D b
请注意一定要把数据库和日志设在ntfs分区,数据库大小不限,要保证剩余磁盘空间大于6G。
, G, f2 X* I% q数据库设置里设为自动收缩数据库文件。
7 Z, Z; m9 ~, {5 H N- F(也可利用查询分析器导入baike.sql)
$ z8 W% A* \1 V) N8 R% U: W3 T6 ]6 {6 W! t% h" ~0 _# V/ M- e7 K
三、下载更新数据(仅仅是个人数据库不需要)) q Y7 u' M3 q+ I2 E
http://127.0.0.1:111/index3.asp更新数据,更新过程中请不要关闭index3.asp。! E$ S3 O. ~+ o1 `* S$ [( e
如果下载数据出错,请检查bk2.asp,使用response.end命令检查输出是否正确。8 y7 N+ ^! k/ a. e
可以批量导入txt文件或htm文件,txt文件或htm文件放在网站txt目录下,可以一次性导入多条txt文件或htm文件,txt文件或htm文件的标题作为title,txt文件的内容写入content。导入前请用工具将文件名改为中文。2 J7 V- y& M g: P* x! T$ S
/ D4 N! W) h8 H$ {' C
支持图片下载,需要下载图片时,将bk2.asp中的qt=0改为qt=1即可。
+ T4 |$ R- I8 G( O0 t+ n( u" U/ h; |( v$ I* l( v6 A
四、导出txt h( \& U8 V5 u& P- f' Y9 G6 C
选择导出到txt,选择用一条查询命令导出数据,0 m. c; n; I* N0 ?
输入查询语句:“ select title,content from baike where not(title like '%/%') ”(不含引号)
& ?2 A) [4 ], ]下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。" D8 ?6 g. A4 ~* }% E* s* G
点击转换,选择转换。点击转换选项,使用下面的转换语句:8 R& J: r f' t0 \ N- }7 Y1 f5 r
Function Main() 3 e# [7 ]! q* M
DTSDestination("title") = replace(replace(trim(DTSSource("title")),chr(9),""),chr(10),"")&vbcrlf
" O q0 q8 V4 M" H, }3 B- [0 {' ZDTSDestination("content") = replace(DTSSource("content"),"</>","")&vbcrlf&"</>" . D# W% ?# V( w3 P8 V
Main = DTSTransformStat_OK% d! `9 f: I+ c! e, K9 \8 W/ y/ M9 m3 t
End Function
& t1 a. M3 ~6 E6 q( b3 i9 u确定后导出。6 ]( s' L4 [# m# J8 l4 |# Y' b* J
--------------5 Q" a4 f3 n6 j4 z1 V
------------
5 Y' r8 g7 h M& a, I导出带图片的内容方法# s2 ]9 z$ ]5 q, O
在企业管理器图形界面执行
, j5 H" X f8 _9 a1、选择导出到txt,选择用一条查询命令导出数据,导出sql语句! ]( e- [3 V! e' @
===================================/ U- R9 y5 _; e& ]3 C8 ^
select title,bid,ispic,pid,content from baike where not(title like '%/%')- K0 E! e' E2 L% \) F3 G' n
===================================) t1 h; i/ \$ D2 ~& ?/ K: |
2、6 k% Z s( ~3 w$ \+ \4 D
下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。
# ]2 {$ M" Z3 @点击转换,选择转换。点击转换选项,使用下面的转换语句:3 y8 Z# n0 k+ E) R
===================================7 i" I. n2 {7 W0 ]$ g' K
Function Main()
6 |7 @0 T7 s1 @7 |DTSDestination("title") = UTF2GB(Replace(Replace(trim(DTSSource("title")),chr(9),""),chr(10),""))&vbcrlf ?. K/ w, Q/ \& f! ]
DTSDestination("content") =HTMLEncode6(DTSSource("content"),DTSSource("ispic"),DTSSource("bid"),DTSSource("pid"))&vbcrlf&"</>"
$ _% t% z+ ?: [+ }9 l$ c1 W2 G( VMain = DTSTransformStat_OK9 L/ e3 t- s% I% u
End Function
9 N. E3 L* d4 E4 K0 |/ [" k9 A( Vfunction HTMLEncode6(fString,ispic,bid,pid)
9 h7 C( s8 e; w# f9 Qif isnull(fString) or fString="" then
N8 M, R; C* e$ \& LHTMLEncode6 =" "
8 P$ K# A1 O4 P) }exit function
4 p) Z$ p6 D# b' J6 H; b( bend if
" G4 [+ g3 N$ `! w* yif isnull(ispic) or ispic="" then ispic=01 `6 I- W6 H+ R8 I! L( N$ a
if isnull(bid) or bid="" then bid=1: Z! z! o1 x0 X8 w' X, r
if isnull(pid) then pid=""
& y" t1 Y' e. g9 sfString=trim(fString)
]' x9 m% @' r1 efString ="|||||"&fString0 Q7 @1 I4 S# h( q
fString = Replace(fString, "|||||<br> <br>","")
7 n" ~! `5 @2 u& `$ C% v0 q; I: `/ RfString = Replace(fString, "|||||","")
; s6 k# C9 s* U- afString = Replace(fString, "</>", "")4 A% v4 U/ q V: r$ u' Y% A( J
fString = Replace(fString, "<a href=#", "<A HREF=entry://#")2 d8 J$ o& m4 S1 I" Y
fString = Replace(fString, " >", ">")9 Z: B4 Q( r9 a7 x, B/ V. J( }% I- j* e
fString = Replace(fString, "<br> <br>","")
& L! S, ] Y" U) O4 ofString = Replace(fString, "<br> <br>","<br>")0 Y7 I0 a1 t2 l
fString = Replace(fString, "<br><br>","<br>")
; m+ r. f+ z1 k( ~! t0 ?' n+ wif ispic=1 then
" x0 o+ n6 a- H* A% f2 D" G( [fString ="<img src="&CHR(34)&"file:///down/"&int(trim(bid)/10000)&"/"&trim(bid)&".jpg"&CHR(34)&" border=0><br>"&fString
3 o. n: T5 r% D3 xelseif ispic=2 then( Y. y+ Z9 K; P
fString ="<img src="&CHR(34)&"file:///down2/"&trim(pid)&".jpg"&CHR(34)&" border=0><br>"&fString7 d( T* J1 e, n# U
end if
9 G, u+ ~8 X% V6 MHTMLEncode6 = fString) v& e7 Q" j' Y2 ?8 _/ U$ G
end function1 P- c( U# }) I8 P# I: T5 Z. Y; S
function UTF2GB(UTFStr)
5 m1 V4 W0 H7 otempUTFStr=UTFStr! R' W; C# w% ]3 W m, {5 \- N
UTFStr=replace(UTFStr,"&","&")
, E7 j3 p3 n' u9 z& d* fUTFStr=replace(UTFStr,"・","·")
. P5 N# \3 }: ~6 \UTFStr=replace(UTFStr,"‧","·")! v% }$ c0 V( J5 {
UTFStr=replace(UTFStr,"'","’")
+ I: S5 K2 R* p5 N2 gUTFStr=replace(UTFStr,"‎","")
. S/ }' ^% v' e- w0 n4 Cif len(trim(UTFStr))>0 then; S% J- w* V7 D4 x" n
UTF2GB=UTFStr
: {6 i8 s' E- B# b- {0 Helse2 e; ~! M* Y/ J& u) j! r6 f
UTF2GB=tempUTFStr
5 I7 Z) r& s- U$ F. B5 b: Lend if
+ o0 y. h9 n Z0 kend function/ c& C' E& w2 K9 J
===================================
% f0 {) r3 G5 Y3.转换辞典7 O+ c8 X5 V* R" T# F
制作图片文件时将图片文件夹下的那个隐藏文件Thumbs.db文件删除
, h+ y3 E8 Z" p+ ~8 T! t5 T在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的
/ B0 j0 \. s/ l所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下
. l4 G) k1 N; y) X. `
" O8 w( _5 u' R& `. K) o五、转换mdict
1 l, L1 b9 S4 {原始格式:选mdict(html)! U7 d! A( i% g, a2 n% S4 a
' {2 ]4 G4 C7 v$ w w* B @7 E编码方式:% R/ B `9 ?, P1 h' N3 m( A
文件类型ansi,编码方式选GBK# f! K5 v1 v( l' W, A2 z0 ^
文件类型unicode,编码方式选utf-16
# g, C3 ]7 U/ y; N8 t: |即可3 K6 s5 E! Z; d3 p# M2 D* i v
+ h4 r/ m0 r- P+ p! s/ P六、清除临时文件(仅仅是个人数据库不需要)' U6 @! p: h8 C! u
更新数据时,会在系统盘windows/temp下产生临时ie文件,请定时删除1 u4 r' }5 k3 T% f/ h. y( S. D$ C
, o* ]! T3 m' F; t* Y1 K N七、收缩数据库日志文件(数据库不是太大没必要进行)/ v! Z _5 `5 }9 o" |; P+ F
收缩数据库文件(如果不压缩,数据库的文件不会减小)
/ D$ t* a& w4 s* Z# a& S查询管理器里执行
5 G: b! I! ^3 T" l: {" x4 HDUMP TRANSACTION 库名 WITH NO_LOG' s9 k5 W4 i$ u$ h8 s2 d
BACKUP LOG 数据库名 WITH NO_LOG
+ E" P$ P# f C q然后$ T8 D/ g8 F8 @( W9 E- s# H
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
! |9 Q5 z* A) S7 V2 H--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
- ^5 x3 m9 y2 Z0 T c9 ]3 ?" s0 |' d--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
- P1 _) A/ a$ Q8 m5 F& [% X! D) X6 `
八、导出时删除标题重复的数据( ]- o& O0 w% s( g' F7 a6 o5 c
select title,content from baike where id in(SELECT MAX(id) AS id FROM baike GROUP BY title) G7 N- _4 \+ I" ?6 \& k, F% H
! Y" e" w" d* ^: P4 d[ 本帖最后由 ldlcau 于 2009-1-6 10:11 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?免费注册
x
评分
-
1
查看全部评分
-
|