掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 71193|回复: 32

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

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

    [LV.4]偶尔看看III

    发表于 2008-10-6 09:42:44 | 显示全部楼层 |阅读模式
    本帖最后由 ldlcau 于 2010-3-15 08:23 编辑
    3 t; U5 y1 ?/ q: s0 Z' C6 \& y9 B% x
    修改了三个文件 见附件baike-2010-3-10.rar   
    ! f6 |8 t0 v# @5 R5 v7 F增加文件bk3.asp用于更新现有数据。设置更新的词条最少编辑次数,编辑次数(gxcs)超过此的则更新,请修改表baike添加字段ygx,类型int.
    * o8 ~6 l' c* d1 g2 U! l6 ]. ?. Z+ G. G表结构有变动,请按照建表语句来建表; ^- P! s" r3 j, s7 d5 R
    由于百度百科经常更换样式,下载百度百科可能会出现无法下载的现象,请修改bk2.asp。
    1 X/ X9 p3 p6 h; k
    - o4 G! F, Q- G% [! E  m建表语句
    ' p5 f5 ^4 f* t: p( XCREATE TABLE [dbo].[baike] (
    . G: c1 W1 k3 v" D% l        [id] [int] IDENTITY (1, 1) NOT NULL ,& c1 ^3 N; L3 v4 j& b" }" Q0 z
            [title] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    2 P& f6 y! U1 T3 s5 R$ Q        [leibie] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,0 l. {2 [( Z  c4 S; I
            [content] [text] COLLATE Chinese_PRC_CI_AS NULL ,2 ^' K" z0 r0 L$ q& k
            [gx] [smallint] NULL ,. ~5 J7 r- x3 ]0 k; m' P0 `' J
            [bid] [int] NULL ,; C6 r8 d% q( U1 I) y
            [ispic2] [smallint] NULL ,; d' K5 q4 |& u
            [gxtime] [datetime] NULL ,
    4 W  i$ B# ?; [: z7 k        [bjtime] [datetime] NULL ,
    - U8 G: F' S8 j; k* Y        [gxcs] [int] NULL ,
    7 K# b0 U6 V* U* v) x* i" K8 \        [bangzhu] [int] NULL ,8 c4 W! G9 S9 h+ \9 ]# J$ m1 m
            [ispic] [int] NULL ,- u# Z# Y2 U# H- A
            [tz] [int] NULL ,
    5 e( L0 x% p: C9 x9 X; `8 B        [pid] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    # u. v- ]& x* M" c0 Z2 B        [yc] [int] NULL & v9 j) P- q/ U
             [ygx] [int] NULL
    8 R- [& G  F4 [0 Y' ^! a" \) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    . Y1 O2 H$ M; x8 v5 U4 l2 Y) E' N% ~修改了部分内容,发现运行中有错误的请重新下载.
    % N( b7 O* e( ^; M" }1 ^   支持批量文本导入,可以建立个人的百科。6 I4 P1 V8 x6 s# B9 Z' v6 K
    6 q5 E* ]. b+ e/ U
      最后修改时间:2010-3-15. G( z+ M  E+ V2 v3 ^& r' `

    % S+ U4 z5 s- {8 i- B% V
    需要环境:sqlserver2000+iis - A3 N) h; ~5 W1 ^% z) m
    下载更新百度百科, 硬盘空间最少6G,NTFS格式。网络环境:保证24小时不间断。(仅仅是个人数据库不需要)
    / k. R: Q# _  c6 u
    ( M: U; W! N/ n# A. _% N3 X制作方法:1 y- C. v# h" J3 `8 p' x6 ~, s& E. G

    * b# }) r) g2 ]. u' l" x, ^1 k本程序除可以下载更新百度百科外,也支持批量导入文本文件,建立个人的数据库。4 b1 n. L  f) m7 l  L
    一、建立两个网页服务器0 g; X6 e3 X' G2 E( a# R, t
    http://127.0.0.1 正常浏览网页所用的服务器
    & ~( y$ N; C# B: [2 f& Ahttp://127.0.0.1:111 更新数据的 iis服务器,注意在server服务器版操作系统才支持建立多个web服务器(仅仅是个人数据库不需要)
    ; W( |% i$ U* B1 T" L% x" \5 z都指向同一目录$ \- f" q$ M' [
    index.asp 首页、浏览、添加、修改、检索8 p4 z0 Z0 g* k# _( o9 Q, E/ g
    bk2.asp 或 index3.asp 更新百科数据文件(仅仅是个人数据库不需要,可以删除)
    0 V$ f5 S# P' rdsn.asp 数据库连接文件
    ) k5 w. k7 ?& m; Yjs.xml 保存更新进度数据,注意ntfs下要设置为所有成员均可修改+ S. Y  _; Y* W- H- n& H6 e5 |

    ! a+ |; J1 M, L, P0 o9 `$ W二、建表
    4 E2 }3 Q2 S& N8 M3 L, h表名 baike 参见上面的建表语句0 {: Z( n9 x) ^9 z
    sql安装时验证方式要采用混合模式
      n% c! K0 f3 S) X0 x1 Y请注意一定要把数据库和日志设在ntfs分区,数据库大小不限,要保证剩余磁盘空间大于6G。
    5 j8 f9 c, }9 K3 F2 x) T数据库设置里设为自动收缩数据库文件。. ~- C* T& W* Q0 R2 ], J& ~
    (也可利用查询分析器导入baike.sql)
    ! l5 R6 |/ b) |% B1 O' S$ D& u
    ; ?( O5 Y% n& D2 B三、下载更新数据(仅仅是个人数据库不需要)
      f* D( _3 L4 t- r2 E, n3 fhttp://127.0.0.1:111/index3.asp更新数据,更新过程中请不要关闭index3.asp。9 W( z9 X3 F" c* o# R
    如果下载数据出错,请检查bk2.asp,使用response.end命令检查输出是否正确。
    " k) m6 R+ S+ I! s# V可以批量导入txt文件或htm文件,txt文件或htm文件放在网站txt目录下,可以一次性导入多条txt文件或htm文件,txt文件或htm文件的标题作为title,txt文件的内容写入content。导入前请用工具将文件名改为中文。+ r# Q. F. I3 u+ X& X
    " s# T: d; ]  T! u- B6 G
       支持图片下载,需要下载图片时,将bk2.asp中的qt=0改为qt=1即可。
      y+ e* l8 P4 l2 W6 d$ ~4 F) s7 C; c9 u' z4 V: x* }( L
    四、导出txt: U) @) e8 ]% m0 z0 ~
    选择导出到txt,选择用一条查询命令导出数据,
    ; m# t& J  B/ R. J& ~输入查询语句:“ select title,content from baike where not(title like '%/%') ”(不含引号)( ?3 m/ R9 F8 r0 l3 c: y0 w$ m
    下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。
    - J. o' Y; j7 d( P点击转换,选择转换。点击转换选项,使用下面的转换语句:! d1 t: \; Q6 B: p0 o0 f4 v
    Function Main()
    6 h0 S( D- n2 {3 `* }) ^8 RDTSDestination("title") = replace(replace(trim(DTSSource("title")),chr(9),""),chr(10),"")&vbcrlf
    & Y9 S% @8 a8 P! p! ODTSDestination("content") = replace(DTSSource("content"),"</>","")&vbcrlf&"</>" ; J7 ?, z$ b% e. a% e
    Main = DTSTransformStat_OK
    ) P0 C# c6 c! \- }" G1 _5 E3 J8 e2 {End Function

    . s" M! u0 T* _, c! m- N" b确定后导出。" N8 E# Y8 P$ J7 S; H
    --------------
    3 V+ ]8 v. c* P9 T3 Q------------
    0 D3 H4 Y1 Z/ @/ m7 @% _, ]导出带图片的内容方法1 c. q5 W! U  B
    在企业管理器图形界面执行2 e* p7 r+ |2 P
    1、选择导出到txt,选择用一条查询命令导出数据,导出sql语句+ Y4 l/ G9 N' G  G% [9 C
    ===================================
    8 ^' C! i6 p8 K) a/ ]5 x" yselect title,bid,ispic,pid,content from baike where not(title like '%/%')" w# @8 _1 W% `
    ===================================
    & A/ E( K7 e7 {% }2、
    ) c; s; p1 U- k! B( u, P下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。# I" R+ v/ u; |# J: m2 v1 O
    点击转换,选择转换。点击转换选项,使用下面的转换语句:7 O% D& S7 ^# e8 M6 g' g! c- i
    ===================================6 S  @# \; i0 [& N- ~
    Function Main()
    1 \) d- C% x4 dDTSDestination("title") = UTF2GB(Replace(Replace(trim(DTSSource("title")),chr(9),""),chr(10),""))&vbcrlf
    2 Z* `+ v0 Z/ [5 u! k5 u8 ?, Y5 E8 i( XDTSDestination("content") =HTMLEncode6(DTSSource("content"),DTSSource("ispic"),DTSSource("bid"),DTSSource("pid"))&vbcrlf&"</>"9 w# V) s( ]" i' d- y
    Main = DTSTransformStat_OK4 S: u" e& s! e, b% J
    End Function

    * V' S0 o, b( ]( Z; I& hfunction HTMLEncode6(fString,ispic,bid,pid)
    4 s9 ~# b8 T2 K5 w& Gif isnull(fString) or fString="" then
    # H2 A) p& l8 M3 f* q3 LHTMLEncode6 =" "
    & f3 d9 H/ q0 ]; B* f0 h/ xexit function& d4 X# x: a! M/ y& I
    end if1 x/ `# [; @) e4 O* z4 q
    if isnull(ispic) or ispic="" then ispic=0
    1 ?$ [3 Q( o5 c& `if isnull(bid) or bid="" then bid=1" G- \8 P( N8 w4 l9 \( q/ r" C6 V
    if isnull(pid) then pid="": x; L- p- U. K* |1 ^, L
    fString=trim(fString)
    ; x- M5 Q; c# Z/ _# IfString ="|||||"&fString9 w' a! d- d' {- {- \# N9 p
    fString = Replace(fString, "|||||<br>     <br>","")# e% ~: F% N  B. Z, q
    fString = Replace(fString, "|||||","")
    , o# ], T$ P2 I: _fString = Replace(fString, "</>", "")4 Z# H7 s5 _6 Q7 [$ ~; K
    fString = Replace(fString, "<a href=#", "<A HREF=entry://#")4 T$ n7 D" B# ^/ U6 e2 M
    fString = Replace(fString, " >", ">")9 u+ K, A7 I) I$ s. m1 L! l
    fString = Replace(fString, "<br> <br>","")! j# _6 A$ X8 T+ E* C
    fString = Replace(fString, "<br>     <br>","<br>")
    # ?5 M; _) J  U3 O0 WfString = Replace(fString, "<br><br>","<br>")
    - {" J+ r3 s: T0 P+ qif ispic=1  then$ Y+ |# I/ y' z/ I+ E1 ^
    fString ="<img src="&CHR(34)&"
    file:///down/"&int(trim(bid)/10000)&"/"&trim(bid)&".jpg"&CHR(34)&" border=0><br>"&fString$ k4 n4 W# ?. B, d  }
    elseif ispic=2 then: q0 @5 m4 w7 D; C! t  x, P' d
    fString ="<img src="&CHR(34)&"
    file:///down2/"&trim(pid)&".jpg"&CHR(34)&" border=0><br>"&fString
    ' p# B6 i- O: k# eend if  L$ n0 t4 |1 W2 v# T/ P  w. d
    HTMLEncode6 = fString
    0 e$ P! N% p1 vend function5 z! V* ^: e! x1 U/ m% x& F1 ?
    function UTF2GB(UTFStr)  H7 k# M+ r% y3 l" X- L
    tempUTFStr=UTFStr
    : J% A0 M4 t' B) @9 ~/ AUTFStr=replace(UTFStr,"&","&")4 [5 W4 X1 v' `6 k/ k
    UTFStr=replace(UTFStr,"&#12539;","·")
    . R+ E: p$ k% r8 |6 Z5 g& P" {UTFStr=replace(UTFStr,"&#8231;","·"); g% \; |+ H+ W! N  D6 a
    UTFStr=replace(UTFStr,"'","’")5 |2 L5 a8 ^0 V1 G+ f3 X
    UTFStr=replace(UTFStr,"&#8206;","")
    6 x) v  o0 i* ~$ u0 ^6 oif len(trim(UTFStr))>0 then; h/ S6 o3 l/ K$ ~* Q- B. w% }2 s
    UTF2GB=UTFStr/ c) {6 T' `9 [( p* q
    else: m- S5 Y( C( j) g( t+ Y
    UTF2GB=tempUTFStr3 {/ P' B' X2 \) u* U9 X, E
    end if
    ) N- a+ @1 a: w. ~end function
    $ y% {, c. z# P) W/ M
    ===================================
    0 A- m1 W' B/ N3 H5 m3.转换辞典+ D& i5 Z, S+ U* q. ^; h
    制作图片文件时将图片文件夹下的那个隐藏文件Thumbs.db文件删除
    % n+ _1 g7 G$ I在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的
    5 I' l: J! b7 D1 b所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下4 }3 n6 N9 |8 s, Z! o& L2 l
    . Y5 X8 t7 T+ Z. L: q5 i
    五、转换mdict( a: T, y* l# y, ~9 F( X6 E
    原始格式:选mdict(html)/ {; V0 B6 Y! u1 p

    . }9 t. V3 x0 v6 K编码方式:
    0 z' H3 q3 s% ?& O  s0 |9 n文件类型ansi,编码方式选GBK
    % `& T1 J( S9 \  x2 a* q文件类型unicode,编码方式选utf-161 [, x. N6 C8 u' [3 |( D
    即可  m0 ~3 E# _1 o" ]+ T# @

    / B3 b5 W3 O5 L六、清除临时文件(仅仅是个人数据库不需要). B4 w8 k) `, y/ b$ T# W! v
    更新数据时,会在系统盘windows/temp下产生临时ie文件,请定时删除. |! e, D8 J# m5 F* \) A4 E, ^
    6 i. p# r" X' I# Y& ?) J$ K
    七、收缩数据库日志文件(数据库不是太大没必要进行)
    * b# ~; L4 E  ~) [' b收缩数据库文件(如果不压缩,数据库的文件不会减小)
    4 q, y6 L& I- W1 D& l/ x! a8 o7 h查询管理器里执行
    2 g# E- A1 p6 J7 X  lDUMP  TRANSACTION  库名  WITH NO_LOG$ x0 h; {; w/ N* o6 M: }
    BACKUP LOG 数据库名 WITH NO_LOG
    + ^2 G% f$ J7 Z2 O9 t$ f2 j4 t; y5 J然后
    & |( ?# R5 q. ~. s! y* X企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 : a8 c& K/ ]* W9 ?" x  }1 m
    --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。+ [; j+ m6 T8 m! Y
    --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
    $ h: ^1 M2 [- v8 R, n
    1 Z5 [8 h' H6 M# R3 m9 i( K, C% H八、导出时删除标题重复的数据2 A4 t  h2 d; _) {6 Y
    select title,content from baike where id  in(SELECT MAX(id) AS id FROM baike  GROUP BY title)+ j* H- U. w7 I& A* H8 m

    7 v" r$ P! F' R7 v6 B6 {: W" K[ 本帖最后由 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 | 显示全部楼层
    添加了图片,更新了部分网页文件,以前下载的请重新下载。
    : `* U$ {( @- z' I# u% z支持批量文本导入,可以建立个人的百科。
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2008-10-11 14:32:51 | 显示全部楼层
    漏掉了一个文件,已经放上1 q6 N# @! o: R# R
    请重新下载。
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2008-10-14 10:40:48 | 显示全部楼层
    支持图片下载,需要下载图片时,将bk2.asp中的qt=0改为qt=1即可。
    5 p9 O) z# I5 p0 N$ u图片保存在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 发表
    2 z0 P3 I$ B& M2 x! \添加了图片,更新了部分网页文件,以前下载的请重新下载。
    6 x0 l* \( M7 s0 l支持批量文本导入,可以建立个人的百科。

    5 y/ M' x( b: f; P" I' I* L- F% h' e/ y+ U0 |! O
    个人百科,添加也是这样么?
  • 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麻烦你给出个《百度知道》的制作方法,如果有百度百科和百度知道这两本字典,那真的无敌了。, c  g7 ~1 w3 a; K' G2 G9 j
    ; G, m% N  G1 K: J/ P2 j' p
    :D :D
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2009-1-13 10:41:47 | 显示全部楼层
    百度知道 方法类似* x% o; K9 I9 h- s/ Q6 g+ H
    下载数据- 转换数据- 导入数据 -制作

    该用户从未签到

    发表于 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取图打开9 j" T6 c# @3 V
    如果是未取得数据把bk2.asp2 f  K) g, c2 y. Q. J8 z, u% N
    <META content="60; URL=bk2.asp" http-equiv=Refresh>, P( F8 w: M* A6 q
    中的60改大一些,<META content="90; URL=bk2.asp" http-equiv=Refresh>& t! j) _8 d- q
    看看
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-5-2 18:08 , Processed in 0.028679 second(s), 29 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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