掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 70622|回复: 32

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

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

    [LV.4]偶尔看看III

    发表于 2008-10-6 09:42:44 | 显示全部楼层 |阅读模式
    本帖最后由 ldlcau 于 2010-3-15 08:23 编辑
    2 j! i; o" O/ F% A2 P2 @
    1 X2 r9 w4 P9 R修改了三个文件 见附件baike-2010-3-10.rar   ; \. O8 E. t7 e8 S
    增加文件bk3.asp用于更新现有数据。设置更新的词条最少编辑次数,编辑次数(gxcs)超过此的则更新,请修改表baike添加字段ygx,类型int.3 f# f. ^+ d$ q& ^
    表结构有变动,请按照建表语句来建表
    3 u& z: @) ]8 k) `
    由于百度百科经常更换样式,下载百度百科可能会出现无法下载的现象,请修改bk2.asp。$ t+ l; q# R: X9 c8 {
    ( V" p6 j2 Q% J$ X+ f# j
    建表语句' s9 F+ S) @9 k! c0 w4 Y5 C7 W
    CREATE TABLE [dbo].[baike] (' P2 a& }& F, D% ~+ T8 b
            [id] [int] IDENTITY (1, 1) NOT NULL ,; a0 `# A6 g4 ^1 P/ p7 }- O
            [title] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,( Z8 E; k  Y6 I1 {/ b& B9 j. V/ n3 o
            [leibie] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
    ; Y: d' R: r6 [" m' L( h1 g        [content] [text] COLLATE Chinese_PRC_CI_AS NULL ,9 K5 b; `9 \% k; L
            [gx] [smallint] NULL ,
    0 y" `+ l8 z9 W. X" Y        [bid] [int] NULL ,7 W7 s' }" x$ n. h+ V( J  N
            [ispic2] [smallint] NULL ,
      w2 U1 E8 p6 v3 |0 C8 x7 }) j        [gxtime] [datetime] NULL ,
    - Q6 X* K/ d( z0 v        [bjtime] [datetime] NULL ,4 |8 g5 s6 S. J( U6 ^
            [gxcs] [int] NULL ,9 X, j- t% E1 Z$ U. S  A
            [bangzhu] [int] NULL ,) Q9 l; ]% ]1 o* J8 _
            [ispic] [int] NULL ,
    2 p# v4 b3 L% j) Z& q# d) Q$ L        [tz] [int] NULL ,! m# k5 t3 s8 Q
            [pid] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,5 G0 O1 J0 n! r3 @% t
            [yc] [int] NULL . O) j) |8 |, F- T% g6 c
             [ygx] [int] NULL
    / P6 d3 w! l5 C, ~' G( q2 O) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]+ O, u% }. n) E; @( U9 i- {9 o- M: _: n
    修改了部分内容,发现运行中有错误的请重新下载.
    $ K/ K) J6 T9 A) P   支持批量文本导入,可以建立个人的百科。
    $ _4 `2 e$ M6 P& S* T0 A; ]) v# [' m" i$ @3 l5 c; W
      最后修改时间:2010-3-15" T' j/ l/ u* z2 f' {

    4 G0 ~6 }, P8 r$ I+ f* o
    需要环境:sqlserver2000+iis ! u& g" \: }! x  c
    下载更新百度百科, 硬盘空间最少6G,NTFS格式。网络环境:保证24小时不间断。(仅仅是个人数据库不需要)# ?' E$ |% h5 a- k. c2 L
    6 c5 @3 L) K" x6 W# R" ^6 [
    制作方法:
    : v  \! h4 h- _5 G0 l# {& t/ O( W
    " s8 k0 A: v4 i+ H! ]本程序除可以下载更新百度百科外,也支持批量导入文本文件,建立个人的数据库。" K: C; |2 h: e. N
    一、建立两个网页服务器4 p2 h3 D7 S" h7 d' ~
    http://127.0.0.1 正常浏览网页所用的服务器
    9 U, x9 U- Y& o3 ]% h$ G* bhttp://127.0.0.1:111 更新数据的 iis服务器,注意在server服务器版操作系统才支持建立多个web服务器(仅仅是个人数据库不需要)' R  C$ p' T/ v7 a) K4 l8 a' w# h
    都指向同一目录! f5 v/ I# h* h( o$ x
    index.asp 首页、浏览、添加、修改、检索# e# ^) ?. S8 A& B
    bk2.asp 或 index3.asp 更新百科数据文件(仅仅是个人数据库不需要,可以删除)
    4 ]& r  |8 p9 Rdsn.asp 数据库连接文件
    8 J$ u7 _8 H* N( y9 N4 U* rjs.xml 保存更新进度数据,注意ntfs下要设置为所有成员均可修改/ F. L; W5 C: L0 h: G) c# _

    ' F5 Z+ q  W5 _; L  `- z8 ]9 B二、建表
    / E+ H5 G6 Q/ F* T/ s& R  \表名 baike 参见上面的建表语句  y/ s1 ^8 U! J5 L3 a5 l
    sql安装时验证方式要采用混合模式
    8 r3 t6 [: `1 I* Y, d( J请注意一定要把数据库和日志设在ntfs分区,数据库大小不限,要保证剩余磁盘空间大于6G。5 r4 J; _! P" S6 R* C# D3 B8 v6 r
    数据库设置里设为自动收缩数据库文件。
    ' J+ h3 S5 w# R% E2 C(也可利用查询分析器导入baike.sql)
    # C& T, [1 F' S( P6 r  O" P7 R9 i+ u" k
    ; W. e9 H4 W: T) p( l5 d- a+ J三、下载更新数据(仅仅是个人数据库不需要)0 S# S5 w' a9 v: a% E- L8 g
    http://127.0.0.1:111/index3.asp更新数据,更新过程中请不要关闭index3.asp。8 u9 ]+ Y0 A0 I7 J$ @0 U
    如果下载数据出错,请检查bk2.asp,使用response.end命令检查输出是否正确。& j$ S; c9 t, i' b# N3 G
    可以批量导入txt文件或htm文件,txt文件或htm文件放在网站txt目录下,可以一次性导入多条txt文件或htm文件,txt文件或htm文件的标题作为title,txt文件的内容写入content。导入前请用工具将文件名改为中文。
    - M3 S7 K8 I& }( t
    - X$ J5 U; R! G& K) Z; J
       支持图片下载,需要下载图片时,将bk2.asp中的qt=0改为qt=1即可。
    , r+ g! g4 [3 V" B! E0 P# O" L! u
    四、导出txt
    * T/ {! q- F9 |- ~选择导出到txt,选择用一条查询命令导出数据,  P6 I4 J) N9 V: a( c$ H. I
    输入查询语句:“ select title,content from baike where not(title like '%/%') ”(不含引号)
    6 G" \1 q" G0 R, K下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。
    - O/ G9 C! `) m7 z点击转换,选择转换。点击转换选项,使用下面的转换语句:1 s4 b, z" ?) u: ?
    Function Main() 6 E5 g; `6 U) W4 m. F+ k
    DTSDestination("title") = replace(replace(trim(DTSSource("title")),chr(9),""),chr(10),"")&vbcrlf+ y) Y; u# q0 B+ M' F, @* ^, t
    DTSDestination("content") = replace(DTSSource("content"),"</>","")&vbcrlf&"</>"   V9 a" S7 O1 \
    Main = DTSTransformStat_OK0 ~. H$ m6 l3 w
    End Function

    ; J( V' T7 g2 O确定后导出。2 F1 ]* \' Z+ T, S* Z
    --------------7 y/ U5 q1 L9 |0 D% y
    ------------
    ; }% H- M- w7 I% _& W8 O; u. f导出带图片的内容方法: h* h" H( ^# ?6 u2 V. i, f! ]. U+ v
    在企业管理器图形界面执行
    3 I  }9 O' ^6 q1、选择导出到txt,选择用一条查询命令导出数据,导出sql语句
    1 _# Q2 q8 m# {+ d) p===================================( W3 C5 Y) Y+ [* L( z" Z8 W# _
    select title,bid,ispic,pid,content from baike where not(title like '%/%')
    7 [# p% y2 i9 R2 Z
    ===================================
    % V5 O5 l% L# B1 M( T: g$ L% T2、7 m' |+ M. R4 P" A
    下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。
    " V4 g+ g4 v! p; {- S; _$ U. B/ S1 V点击转换,选择转换。点击转换选项,使用下面的转换语句:
    ! E& p* ]% x8 |===================================
    ' H$ i- J5 H6 [& ^5 ~Function Main() " B/ e+ k$ y! ^# D
    DTSDestination("title") = UTF2GB(Replace(Replace(trim(DTSSource("title")),chr(9),""),chr(10),""))&vbcrlf
    $ Z+ `$ X# x8 |, fDTSDestination("content") =HTMLEncode6(DTSSource("content"),DTSSource("ispic"),DTSSource("bid"),DTSSource("pid"))&vbcrlf&"</>"
    ( W" s3 _9 i: q! L0 Z6 cMain = DTSTransformStat_OK
      U- a  R3 J* E' z# ~6 K3 O) G) UEnd Function
    2 L! z. C# Z' Q+ q: B
    function HTMLEncode6(fString,ispic,bid,pid)1 y8 r6 r9 e+ y4 ?" V5 }: f( A
    if isnull(fString) or fString="" then
    " V& ?" ~& ]4 @5 {6 C+ AHTMLEncode6 =" "
    ( O' g- H8 o$ Z* F) r; w) |exit function# O1 M1 s; V: u4 ?) P+ s, s. f
    end if- b/ _+ g, n( q! [
    if isnull(ispic) or ispic="" then ispic=0. H# N4 K, V. I8 P7 F
    if isnull(bid) or bid="" then bid=1
    ; w8 N+ I, H2 [) d* C: kif isnull(pid) then pid=""
    + |1 k6 _% l; [4 AfString=trim(fString): y: R2 l1 r4 A' k; y
    fString ="|||||"&fString
    7 Z, r2 [) Z1 x( wfString = Replace(fString, "|||||<br>     <br>","")2 d2 h& O8 x( L/ @3 Y  E  H: k
    fString = Replace(fString, "|||||","")
    5 n- w8 {# [* s: r3 P/ ?) i% ]fString = Replace(fString, "</>", "")
    ! X5 `3 `8 D8 s" P* [& L2 PfString = Replace(fString, "<a href=#", "<A HREF=entry://#")3 E1 ^/ _+ u/ k# H! M, G( E
    fString = Replace(fString, " >", ">")3 m' m5 u, Q: W! A9 ]7 @' N: P9 C
    fString = Replace(fString, "<br> <br>","")/ w: _" U& r. U0 y" T
    fString = Replace(fString, "<br>     <br>","<br>")
    4 d/ }3 |- T+ N! Y3 lfString = Replace(fString, "<br><br>","<br>"), F& K3 T. B0 O. o2 i+ {
    if ispic=1  then* R: p* k/ i0 h8 |5 p. @; E
    fString ="<img src="&CHR(34)&"
    file:///down/"&int(trim(bid)/10000)&"/"&trim(bid)&".jpg"&CHR(34)&" border=0><br>"&fString
    $ s% o2 c* z  I0 Z0 p) Eelseif ispic=2 then
    8 z7 {4 K+ @, @' ?3 @! WfString ="<img src="&CHR(34)&"
    file:///down2/"&trim(pid)&".jpg"&CHR(34)&" border=0><br>"&fString
      t& Q) T8 v8 f/ e2 T- R  v9 |end if" L6 |! U* O. g3 `; @
    HTMLEncode6 = fString0 Y/ W4 e& t( H1 ]  }& d; Y
    end function
    9 D. x  M- e  S. Y1 bfunction UTF2GB(UTFStr)2 u5 L( H& t& Z% ^6 F. g
    tempUTFStr=UTFStr5 k, s! x; c9 U" C8 n' X1 d
    UTFStr=replace(UTFStr,"&","&")! T, @: G1 h% M% {) z/ E7 w
    UTFStr=replace(UTFStr,"&#12539;","·")
    6 \% j7 E  o# W% O2 l- `UTFStr=replace(UTFStr,"&#8231;","·")
    $ F/ j- x* b' o" P, B0 vUTFStr=replace(UTFStr,"'","’")+ f! V- n( j9 Z# c
    UTFStr=replace(UTFStr,"&#8206;","")
    6 W) ~$ X' y/ k% vif len(trim(UTFStr))>0 then" a) Y" i% ^" I% h" j  m
    UTF2GB=UTFStr3 ~/ K) C% v/ J: @1 `
    else
    1 K. q1 A, w% A* k3 @' ~1 nUTF2GB=tempUTFStr
    ( v9 k  m1 ~; i0 v( w% send if) }, L0 w; K7 b9 \5 O
    end function2 l+ b2 v7 A2 f3 C
    ===================================
    . S, S8 a0 i9 a. F4 l3 I3.转换辞典
    ! X% u) c$ t7 s! q) [; U9 i5 }制作图片文件时将图片文件夹下的那个隐藏文件Thumbs.db文件删除4 `- M. U3 e* l! f' M+ @4 v, D
    在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的
    ; W% y) b9 `/ X$ K) Y: c所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下3 G& ~( x8 x* @" m+ K3 `2 R
    $ b2 Y0 ]' D4 F- b/ @( V0 A$ a
    五、转换mdict* p. D* g  O+ t8 `* S) i1 G7 \4 R
    原始格式:选mdict(html)6 w8 u  V- H( u, c
    ! t' ]8 [: ^4 W0 S6 g
    编码方式:
    7 C# \# g  p! r  E: l文件类型ansi,编码方式选GBK# O& E/ j. @$ n9 P
    文件类型unicode,编码方式选utf-162 b7 \6 U1 n8 ~) K) F1 ]
    即可
    . @& X; `( k6 R% Z2 h; J
    - r! v" A( b+ J& o六、清除临时文件(仅仅是个人数据库不需要)2 h. U6 x! i, ^$ B
    更新数据时,会在系统盘windows/temp下产生临时ie文件,请定时删除; T- _! v5 p/ e+ p
      m. ?3 S  j* \( `
    七、收缩数据库日志文件(数据库不是太大没必要进行)! A9 l3 I8 _# E# \
    收缩数据库文件(如果不压缩,数据库的文件不会减小)
    ' B1 x4 e' ~( R+ H$ [6 g. H5 f查询管理器里执行
    ; e1 y2 B* F. e: LDUMP  TRANSACTION  库名  WITH NO_LOG7 F) J- ]5 P% x0 g( I/ o
    BACKUP LOG 数据库名 WITH NO_LOG 2 A: |5 \% E6 M/ Y9 o5 ~
    然后
    ' f  Q& q& _" o& |企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
    2 I0 c- {7 X! d--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
    " h/ }8 X2 R  v, f--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
    8 j# H8 k+ v+ N6 e# v3 S  `5 X1 p. e$ R9 ]
    八、导出时删除标题重复的数据+ O6 w3 m$ ~; A. ^( K
    select title,content from baike where id  in(SELECT MAX(id) AS id FROM baike  GROUP BY title)
    ( f6 s  E+ c- T! `! J9 V7 \- r& x  X, T
    [ 本帖最后由 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 | 显示全部楼层
    添加了图片,更新了部分网页文件,以前下载的请重新下载。# ~. p5 H5 U1 `2 s0 Y, |
    支持批量文本导入,可以建立个人的百科。
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2008-10-11 14:32:51 | 显示全部楼层
    漏掉了一个文件,已经放上1 `; d+ Y6 a* t* `8 B2 s
    请重新下载。
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2008-10-14 10:40:48 | 显示全部楼层
    支持图片下载,需要下载图片时,将bk2.asp中的qt=0改为qt=1即可。4 W% ]% e1 q, J. d9 C" Q" V
    图片保存在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 发表 7 [0 Q& J+ j4 E) f7 ]# S
    添加了图片,更新了部分网页文件,以前下载的请重新下载。
    $ d: G" J9 X8 b) O  d5 ?支持批量文本导入,可以建立个人的百科。
    ' ~" T9 G& R0 V3 n* v2 Q- X
    ( E. n0 m! l7 Y/ h# q# x, G
    个人百科,添加也是这样么?
  • 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麻烦你给出个《百度知道》的制作方法,如果有百度百科和百度知道这两本字典,那真的无敌了。9 t& q' E6 I$ R7 t

    . P* f4 T* ^& |' _' n1 }/ K% T1 p:D :D
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2009-1-13 10:41:47 | 显示全部楼层
    百度知道 方法类似7 }; w/ D/ X+ c7 ?- \. R( C. F+ n7 I
    下载数据- 转换数据- 导入数据 -制作

    该用户从未签到

    发表于 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取图打开
    # W" B7 N# l& k( i0 X如果是未取得数据把bk2.asp$ |* q- R1 M6 S8 q8 G
    <META content="60; URL=bk2.asp" http-equiv=Refresh>- Z* Q" G: ?; X" w1 H& c
    中的60改大一些,<META content="90; URL=bk2.asp" http-equiv=Refresh>. h% ^6 T* ~$ \9 X
    看看
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-5-13 00:47 , Processed in 0.090585 second(s), 18 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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