掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 71276|回复: 32

[教程] 百度百科mdict版制作方法,支持批量文本导入和图片下载

[复制链接]
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    发表于 2008-10-6 09:42:44 | 显示全部楼层 |阅读模式
    本帖最后由 ldlcau 于 2010-3-15 08:23 编辑
    # }/ i4 T2 D4 E* ~) J" s# Y! C6 L9 w$ m3 ~3 g0 C
    修改了三个文件 见附件baike-2010-3-10.rar   
    ) j& y7 U/ z0 {& T2 N- ^$ L增加文件bk3.asp用于更新现有数据。设置更新的词条最少编辑次数,编辑次数(gxcs)超过此的则更新,请修改表baike添加字段ygx,类型int., p# H4 F9 U" @, e+ z: }& E8 I
    表结构有变动,请按照建表语句来建表. j* {% j# N5 i: W% I
    由于百度百科经常更换样式,下载百度百科可能会出现无法下载的现象,请修改bk2.asp。
    ) }; F+ Z+ q% b/ R4 ]5 }
    9 A3 l) N1 z2 m7 S/ t3 ^2 @0 ?5 d. d0 _建表语句
    # L9 H9 H+ L( \/ }CREATE TABLE [dbo].[baike] (
    ; \$ D6 ?/ K7 S        [id] [int] IDENTITY (1, 1) NOT NULL ,+ L2 Q! p* I2 c+ O- h" K
            [title] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    8 z3 U7 V7 g$ Y3 ~4 k& S        [leibie] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
    4 N' w( G! J* ]6 X% i' y        [content] [text] COLLATE Chinese_PRC_CI_AS NULL ,( m  Z& e8 B- R5 u# e( K' A
            [gx] [smallint] NULL ,
    " m: n1 C; k( @5 |1 v7 q        [bid] [int] NULL ," W) |0 D# X' |  q9 v3 O
            [ispic2] [smallint] NULL ,, B2 T. S4 G0 p- U. g/ E* y% \2 O
            [gxtime] [datetime] NULL ,
    & y, q: \- H, b6 j0 w6 v8 W        [bjtime] [datetime] NULL ,6 s: J6 b% E- X. h
            [gxcs] [int] NULL ,5 \1 J2 Y- Q4 I  U3 a* N
            [bangzhu] [int] NULL ,, c$ [" ?7 ?7 l7 D- ]$ Y8 Q9 }$ I7 e
            [ispic] [int] NULL ,
    1 H! |. z& G3 P* w0 ~        [tz] [int] NULL ,2 Z/ r  w# {3 i
            [pid] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
      K# V6 B5 P4 c" n8 M& V        [yc] [int] NULL + ]) K, R9 ^$ M' i# {
             [ygx] [int] NULL   Q) t# Q6 I  z. s  I, g
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]& H; G, R/ ]$ N! L; T
    修改了部分内容,发现运行中有错误的请重新下载.
    2 b( ?7 @6 C/ i% p6 V* E3 o, h   支持批量文本导入,可以建立个人的百科。
    9 `, K# O4 v; Q1 c6 P  m, z1 b$ i
      最后修改时间:2010-3-15
    - {% X* M0 t. g; a% g0 x& ^- e( k5 S! T' j6 |
    需要环境:sqlserver2000+iis / S, _$ P/ q  z
    下载更新百度百科, 硬盘空间最少6G,NTFS格式。网络环境:保证24小时不间断。(仅仅是个人数据库不需要)
    + Q- w  @) Z- D) i5 ^% ?/ E! Z
    8 a* g6 R; k, Z制作方法:
    7 z* Y. G0 [+ \" r: b& s' r
    ' J. o+ @7 I8 O- H本程序除可以下载更新百度百科外,也支持批量导入文本文件,建立个人的数据库。7 [9 y" h  h: q( _
    一、建立两个网页服务器
    . L; q/ L7 V, I' A  Whttp://127.0.0.1 正常浏览网页所用的服务器+ i* D7 i! p  q
    http://127.0.0.1:111 更新数据的 iis服务器,注意在server服务器版操作系统才支持建立多个web服务器(仅仅是个人数据库不需要)
    ' a7 _. c# L- |) }& X( [" S都指向同一目录
    6 e2 \3 }6 R) O& f0 dindex.asp 首页、浏览、添加、修改、检索
    : U  z9 t1 G$ e3 x  Z9 nbk2.asp 或 index3.asp 更新百科数据文件(仅仅是个人数据库不需要,可以删除)/ j1 z% t4 D% m0 f
    dsn.asp 数据库连接文件* x1 x0 u4 f! i7 Q: ^* L2 ^' J
    js.xml 保存更新进度数据,注意ntfs下要设置为所有成员均可修改2 V$ s# S4 ~9 S4 z
    & Y* ?% O7 B4 X
    二、建表
    . @0 @8 O- v, h表名 baike 参见上面的建表语句
    # m/ W" t4 `  D7 M! ~sql安装时验证方式要采用混合模式
    5 m& T+ z1 r. T- Z9 k* I; ~1 J请注意一定要把数据库和日志设在ntfs分区,数据库大小不限,要保证剩余磁盘空间大于6G。& D8 p, J$ Z0 ], w- ]: H& T
    数据库设置里设为自动收缩数据库文件。" r, Z$ h6 a3 S+ k" v- B7 G
    (也可利用查询分析器导入baike.sql)
    & f- B; l& S7 r3 `/ {  e! M" Z( F- ]3 q
    三、下载更新数据(仅仅是个人数据库不需要)
    ( S6 h: {% H  i) R8 d( Q1 r. l# ^3 |1 uhttp://127.0.0.1:111/index3.asp更新数据,更新过程中请不要关闭index3.asp。  {9 i( v9 V( x  l1 R  t. K0 L6 P1 I
    如果下载数据出错,请检查bk2.asp,使用response.end命令检查输出是否正确。
    * c5 e+ A0 C- Z, M可以批量导入txt文件或htm文件,txt文件或htm文件放在网站txt目录下,可以一次性导入多条txt文件或htm文件,txt文件或htm文件的标题作为title,txt文件的内容写入content。导入前请用工具将文件名改为中文。
    $ t( Q# z9 {/ C
    5 _- f0 z0 W9 s0 L! w
       支持图片下载,需要下载图片时,将bk2.asp中的qt=0改为qt=1即可。
    3 t3 _6 D. |% B) X
    5 `2 t8 X- `8 u# A0 A四、导出txt  m0 d" M. p% a( B9 U- A' D
    选择导出到txt,选择用一条查询命令导出数据,
    , D( V$ J2 \1 Q. o/ B! _输入查询语句:“ select title,content from baike where not(title like '%/%') ”(不含引号)
    ) B$ T+ S2 g" {- W0 {; R/ ]7 A下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。( C$ G& m8 m$ U$ j6 `7 u
    点击转换,选择转换。点击转换选项,使用下面的转换语句:
    - F8 r  e- g; S' [Function Main()
    ) m. W6 c& ^, nDTSDestination("title") = replace(replace(trim(DTSSource("title")),chr(9),""),chr(10),"")&vbcrlf
    5 f' c, O; W9 @: w: ODTSDestination("content") = replace(DTSSource("content"),"</>","")&vbcrlf&"</>"   K9 G2 o. g8 B3 [  s, \2 X+ c
    Main = DTSTransformStat_OK
    $ S* C# X8 I' P9 H3 }6 j$ B6 B9 |. BEnd Function
    # C; x. |5 m% t, i  W/ A1 ^
    确定后导出。
    ' ?' J( B4 V$ w3 ~' W& i--------------
    8 d, a3 n/ P8 E* w5 _------------$ L* r3 @4 m9 z) N; e! n1 o
    导出带图片的内容方法8 d. I4 L$ R9 B. {( p7 h; u
    在企业管理器图形界面执行6 h( I7 G* _' l6 w8 s% W
    1、选择导出到txt,选择用一条查询命令导出数据,导出sql语句
    + z1 t$ _, X1 W9 a===================================) D. d! v! f& z0 E/ r# M; r: n: d- b
    select title,bid,ispic,pid,content from baike where not(title like '%/%')0 o4 i7 Y" n! g( @; h
    ===================================
    , A  A3 y9 _' b% J, V! R- M2、
    , d1 z% j5 D( w1 r" Z下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。, i) C5 M7 _  c) @$ O
    点击转换,选择转换。点击转换选项,使用下面的转换语句:  \" i; B$ A, ]" L  n
    ===================================  |8 p* B( D( [6 K( P
    Function Main()
    - Q2 V! D( k* X" z/ B, A* zDTSDestination("title") = UTF2GB(Replace(Replace(trim(DTSSource("title")),chr(9),""),chr(10),""))&vbcrlf
    0 o7 z' Y, X! B( UDTSDestination("content") =HTMLEncode6(DTSSource("content"),DTSSource("ispic"),DTSSource("bid"),DTSSource("pid"))&vbcrlf&"</>"1 p0 x; ]" K, p& U9 y0 H
    Main = DTSTransformStat_OK' H* A# ^; {. C" L" m7 I: p( q3 M
    End Function

    5 I9 @2 j7 N/ F, Ifunction HTMLEncode6(fString,ispic,bid,pid)/ s5 {* x+ g4 U6 P# B
    if isnull(fString) or fString="" then
    8 c% i1 G& D0 \8 {- F) q4 G+ Y% q# ]HTMLEncode6 =" "
    / y8 d; W0 f' n# U% E5 J5 [5 g3 E6 Mexit function
    9 t, \+ u! o2 ]end if
    ; X% Q& A0 q' ]' b9 R5 Bif isnull(ispic) or ispic="" then ispic=0* c: P/ D) G. [7 b9 w. }
    if isnull(bid) or bid="" then bid=1
    7 e3 D* @2 ^- n$ Uif isnull(pid) then pid=""1 o/ K8 x9 I* C  ^7 ]! q& S- q" W3 G
    fString=trim(fString)
    1 q+ ~' @6 E9 h: Q4 QfString ="|||||"&fString
    0 ?- X$ R' c# u5 i8 i0 L" s4 h7 \fString = Replace(fString, "|||||<br>     <br>","")% Y; J/ F; l) m: e+ y
    fString = Replace(fString, "|||||",""): E9 {7 V. e7 y- q. i$ T) X5 ]- o& Y
    fString = Replace(fString, "</>", "")7 J; @/ \* a8 N8 G$ R
    fString = Replace(fString, "<a href=#", "<A HREF=entry://#")
    ( P* t9 B! d- ]( A1 tfString = Replace(fString, " >", ">")
    $ M; c0 {: x. H/ Z  m" S9 cfString = Replace(fString, "<br> <br>","")* N- I$ _  X3 {  f, u, m, m
    fString = Replace(fString, "<br>     <br>","<br>")
    , P- U9 m. t8 pfString = Replace(fString, "<br><br>","<br>")3 X1 }* j, [# V! P% j- u" ~
    if ispic=1  then
    ; t; c, d7 i# ?& H; K, @/ a: kfString ="<img src="&CHR(34)&"
    file:///down/"&int(trim(bid)/10000)&"/"&trim(bid)&".jpg"&CHR(34)&" border=0><br>"&fString
    " K; y. Q6 b' c+ o1 F! {elseif ispic=2 then+ c2 ^- V) l) j+ J
    fString ="<img src="&CHR(34)&"
    file:///down2/"&trim(pid)&".jpg"&CHR(34)&" border=0><br>"&fString7 L1 m6 q# u8 s5 [
    end if5 Y# d9 Y1 d* w0 R% l0 P2 K
    HTMLEncode6 = fString0 z6 }" b5 S. ]; j
    end function4 L3 l% S9 A0 R, t: n" b
    function UTF2GB(UTFStr)
    " a0 n$ `) B: d& q5 }7 m! |8 WtempUTFStr=UTFStr
    & e& A# h1 W1 M% r$ v1 K" j8 c" N: FUTFStr=replace(UTFStr,"&","&")+ h6 I. m  _6 r0 j' J' \4 r
    UTFStr=replace(UTFStr,"&#12539;","·")0 R/ m3 ~! [0 H' ^* Q3 m  U
    UTFStr=replace(UTFStr,"&#8231;","·")6 @1 h% ]. p8 t$ ^5 v6 h
    UTFStr=replace(UTFStr,"'","’")# h9 E! J' o9 r0 k0 i9 r
    UTFStr=replace(UTFStr,"&#8206;","")0 d7 `" `7 P5 X
    if len(trim(UTFStr))>0 then
    9 h1 }: X3 L3 z8 E5 xUTF2GB=UTFStr
    1 ^& `% S5 o0 k/ U, nelse
    4 M- W+ y& f& B" |9 PUTF2GB=tempUTFStr
    ' C: A) t" g$ E( L3 S, Q. cend if" K. e$ p4 E6 u
    end function  e2 C2 u0 E4 ~* `! j4 o' ~
    ===================================
      A7 i# t! c/ h: x3.转换辞典
    - ~# L) R% j0 K制作图片文件时将图片文件夹下的那个隐藏文件Thumbs.db文件删除; e. b: `! k" A- G* Z5 O2 X+ k0 B
    在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的( |5 P( F3 X3 N& e  ^: B+ u
    所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下0 r8 }" _8 ^/ \

    ) p4 t8 h9 g8 m' D: W7 `6 @" M- A! `% g五、转换mdict: K0 R8 O: w$ K
    原始格式:选mdict(html)
    3 ?+ B% ]9 Z: w( m( }% s$ ?3 I( f5 B5 r! b8 ?8 e* l
    编码方式:; E2 k0 Y8 O% M, D  m
    文件类型ansi,编码方式选GBK5 V6 A, v& s, a. E! q! W/ k$ p% s
    文件类型unicode,编码方式选utf-16% Q2 F  \+ ?9 u7 \! N
    即可0 ]1 L7 h$ B9 n

    : V; {& f* q3 t. B/ {% S' ]: ?六、清除临时文件(仅仅是个人数据库不需要)( X5 W* Z9 S# F; ^3 n
    更新数据时,会在系统盘windows/temp下产生临时ie文件,请定时删除3 k6 x! ?2 k/ j# O! e

    ( [# ]  S! @; d! u, v5 Y七、收缩数据库日志文件(数据库不是太大没必要进行)+ W  @% J$ R- ?) O9 w4 f
    收缩数据库文件(如果不压缩,数据库的文件不会减小)' k1 L( h  j$ H
    查询管理器里执行3 T/ c8 ?0 ?- J; l3 E
    DUMP  TRANSACTION  库名  WITH NO_LOG
    3 ^# g# [; Q' }5 s5 A0 H6 hBACKUP LOG 数据库名 WITH NO_LOG ; Z" \, I+ @3 x. i
    然后
    + a. _$ F/ m$ S$ X2 P) k3 _企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
    / f+ v' |/ H3 ~4 ^--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。/ M# u6 {4 ]4 k5 L. F
    --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。" J- Q! J/ v/ |8 l

    # Z1 X- V) g0 _2 a3 R& m八、导出时删除标题重复的数据
    * U3 d. H3 _) iselect title,content from baike where id  in(SELECT MAX(id) AS id FROM baike  GROUP BY title)
    5 ~. _) Z( {8 K" M; p6 g
    & f" @7 A' b) W( b5 k1 q6 n/ G7 |[ 本帖最后由 ldlcau 于 2009-1-6 10:11 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x

    评分

    1

    查看全部评分

    lin_5151 该用户已被删除
    发表于 2008-10-6 18:15:36 | 显示全部楼层
    虽然不太懂,但还是要顶地。
    eugene 该用户已被删除
    发表于 2008-10-7 08:58:26 | 显示全部楼层
    学习了。

    该用户从未签到

    发表于 2008-10-8 13:59:14 | 显示全部楼层
    支持一下,慢慢体会,谢谢老大分享好经验!!!

    该用户从未签到

    发表于 2008-10-10 00:13:45 | 显示全部楼层

    顶顶顶

    支持到底
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2008-10-11 09:16:11 | 显示全部楼层
    添加了图片,更新了部分网页文件,以前下载的请重新下载。# B8 u/ o. b2 o3 q. j# `
    支持批量文本导入,可以建立个人的百科。
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2008-10-11 14:32:51 | 显示全部楼层
    漏掉了一个文件,已经放上! z1 }$ C$ D& W$ c
    请重新下载。
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2008-10-14 10:40:48 | 显示全部楼层
    支持图片下载,需要下载图片时,将bk2.asp中的qt=0改为qt=1即可。
    4 b7 S1 p1 ~) I% E$ Y: O! ^" J, f图片保存在down文件夹下

    该用户从未签到

    发表于 2008-11-19 16:42:09 | 显示全部楼层
    支持:) :)

    该用户从未签到

    发表于 2008-12-8 10:10:53 | 显示全部楼层
    看得我云里雾里的。。。学 习了!

    该用户从未签到

    发表于 2009-1-4 16:52:40 | 显示全部楼层
    谢谢LZ:loveliness:
    eugene 该用户已被删除
    发表于 2009-1-6 08:26:15 | 显示全部楼层
    原帖由 ldlcau 于 2008-10-11 09:16 发表
    3 \( g& U7 j  m9 n添加了图片,更新了部分网页文件,以前下载的请重新下载。
    ) s# y% a$ C0 g; l' q$ z支持批量文本导入,可以建立个人的百科。

    ! k: T0 F" G9 Y; O) p7 p; \2 A: D+ @
    个人百科,添加也是这样么?
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2009-1-6 10:06:50 | 显示全部楼层
    个人百科可以通过文本文件批量导入

    该用户从未签到

    发表于 2009-1-6 11:45:04 | 显示全部楼层
    IZ麻烦你给出个《百度知道》的制作方法,如果有百度百科和百度知道这两本字典,那真的无敌了。:lol

    该用户从未签到

    发表于 2009-1-13 10:02:07 | 显示全部楼层
    IZ麻烦你给出个《百度知道》的制作方法,如果有百度百科和百度知道这两本字典,那真的无敌了。
    3 v: e9 h0 n8 l, M, `6 H
    ; v& W; a. P% d. p: E' m% n* ^:D :D
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2009-1-13 10:41:47 | 显示全部楼层
    百度知道 方法类似
    ; z/ _% P5 q+ t0 c下载数据- 转换数据- 导入数据 -制作

    该用户从未签到

    发表于 2009-1-20 18:24:43 | 显示全部楼层
    严重看不懂,偶果然是菜鸟呀

    该用户从未签到

    发表于 2009-3-9 11:42:18 | 显示全部楼层
    楼主真是神人啊....

    该用户从未签到

    发表于 2009-3-30 22:04:29 | 显示全部楼层
    正在用,很好很强大!!

    该用户从未签到

    发表于 2009-6-7 10:13:44 | 显示全部楼层
    太麻烦了

    该用户从未签到

    发表于 2009-6-13 01:07:30 | 显示全部楼层
    谢谢  支持呀

    该用户从未签到

    发表于 2009-7-22 23:46:28 | 显示全部楼层
    反复用了好几次还是下载不了,想制作一个只包括“科学”的个人百度,请帮助我啊,继续学习SQL

    该用户从未签到

    发表于 2009-7-23 01:41:05 | 显示全部楼层
    Interesting!

    该用户从未签到

    发表于 2009-7-25 09:41:31 | 显示全部楼层
    外行看内行,真的一头雾水!:L
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2009-12-9 13:19:51 | 显示全部楼层
    默认bk2.asp取图打开7 t9 O1 b1 a7 O& S
    如果是未取得数据把bk2.asp3 g8 L$ Q; q2 E# {6 h) u' B. _( g
    <META content="60; URL=bk2.asp" http-equiv=Refresh>
    2 b! _: C: K, H中的60改大一些,<META content="90; URL=bk2.asp" http-equiv=Refresh>
    3 `9 {; C5 F& Z4 s看看
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2025-6-17 12:46 , Processed in 0.030037 second(s), 32 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表