掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 70618|回复: 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 t8 B* o& z# t1 g2 A1 b# g5 [4 _  Y+ A2 Y* w5 T; C
    修改了三个文件 见附件baike-2010-3-10.rar   
    7 Q: w1 A0 g3 ^3 L1 x% @: M增加文件bk3.asp用于更新现有数据。设置更新的词条最少编辑次数,编辑次数(gxcs)超过此的则更新,请修改表baike添加字段ygx,类型int.( G" F& Z  t# P; I
    表结构有变动,请按照建表语句来建表* Q. K& V" F# t$ G  v
    由于百度百科经常更换样式,下载百度百科可能会出现无法下载的现象,请修改bk2.asp。0 v/ _$ s% I" E" m$ z

    7 J- {& T; J0 A. J  h2 O建表语句- G5 H3 d; ?- i5 h3 w9 l
    CREATE TABLE [dbo].[baike] (; i9 m: @( l: R6 `+ d- R
            [id] [int] IDENTITY (1, 1) NOT NULL ," O5 L/ H: m- @6 g
            [title] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    & X" w6 G" _% s+ X' F        [leibie] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
    % a! A. J6 m. j- l, z% {. K  G        [content] [text] COLLATE Chinese_PRC_CI_AS NULL ,
    . R$ g# k) u' a- F# o. i- ~& P9 c        [gx] [smallint] NULL ,, E+ o, ~1 ?* r' ^% `
            [bid] [int] NULL ,; Q9 t, E! c. `- A. H1 G1 M
            [ispic2] [smallint] NULL ,
    + m# C) b7 b  W0 Y9 `5 \        [gxtime] [datetime] NULL ,4 K& W" X8 {: {6 T7 Z0 r! t3 e
            [bjtime] [datetime] NULL ,
    1 V9 e! d4 ~- E9 I* \2 f1 p        [gxcs] [int] NULL ,1 _" ~6 q0 v- F' @4 R: Y
            [bangzhu] [int] NULL ,
    , a! B4 |8 p& _" \! D/ w- R        [ispic] [int] NULL ,+ Z/ v! {5 o) v
            [tz] [int] NULL ,& s, O4 i+ E) h
            [pid] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,4 s" z! D5 `* x  o
            [yc] [int] NULL 0 U  h' ~* }, y
             [ygx] [int] NULL
    ) Z+ z$ G  L! U  Z3 D' l) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]8 X" J! _; }3 o4 S
    修改了部分内容,发现运行中有错误的请重新下载.9 e: D$ s8 r6 t5 F1 H8 C4 R+ |
       支持批量文本导入,可以建立个人的百科。3 b8 O* Q( T; h7 y5 O( u; X

    ! W) x5 D1 ~+ W6 Y4 ?( p  S) D8 C
      最后修改时间:2010-3-15
    # ?* j2 o  n# k, f
    ! k" X8 S* O: I8 j( J/ I
    需要环境:sqlserver2000+iis
    % R, S4 i3 m4 w4 w3 j下载更新百度百科, 硬盘空间最少6G,NTFS格式。网络环境:保证24小时不间断。(仅仅是个人数据库不需要)
    & u  }' N" R4 o+ ~8 `/ s, i) i  M+ B1 P
    制作方法:% d. _, E) R9 [  g( W2 K2 I

    9 A" I: \/ g4 y1 G; Z# j$ g6 I本程序除可以下载更新百度百科外,也支持批量导入文本文件,建立个人的数据库。
    7 V9 @) P% D1 ~* a1 D一、建立两个网页服务器& ~+ ]5 m0 k' a7 v! n. w+ \6 w
    http://127.0.0.1 正常浏览网页所用的服务器% B8 r; G( F$ J+ W  _. o0 X7 E
    http://127.0.0.1:111 更新数据的 iis服务器,注意在server服务器版操作系统才支持建立多个web服务器(仅仅是个人数据库不需要)
    ( r" t( ^- g6 F. Q+ `都指向同一目录: }' t% s' W& {: z: t' v5 _
    index.asp 首页、浏览、添加、修改、检索- g: @# }0 E6 Y0 e# D* a: L
    bk2.asp 或 index3.asp 更新百科数据文件(仅仅是个人数据库不需要,可以删除)' b7 y$ S2 Y, s* s8 o
    dsn.asp 数据库连接文件3 z7 d- E. D+ r; r
    js.xml 保存更新进度数据,注意ntfs下要设置为所有成员均可修改
    4 N9 t: l4 [/ d* X3 S( I5 `  f$ I0 |
    二、建表 + N# K! t* K  [
    表名 baike 参见上面的建表语句! H2 i, Q2 h6 q& z$ A3 S% Q; O
    sql安装时验证方式要采用混合模式% P8 }' M+ o7 g4 e
    请注意一定要把数据库和日志设在ntfs分区,数据库大小不限,要保证剩余磁盘空间大于6G。* @7 E) Y: u' m0 f/ @
    数据库设置里设为自动收缩数据库文件。1 h( [: ?5 w* \5 z
    (也可利用查询分析器导入baike.sql)
    , L  h7 G$ w0 h" A# k4 |% M% g* I4 V7 \  X8 s+ ^
    三、下载更新数据(仅仅是个人数据库不需要)" e3 b$ [: A5 c+ d8 V
    http://127.0.0.1:111/index3.asp更新数据,更新过程中请不要关闭index3.asp。
    ! W5 v4 z  I3 z7 c( N如果下载数据出错,请检查bk2.asp,使用response.end命令检查输出是否正确。
    ( n4 V0 V" M: ]可以批量导入txt文件或htm文件,txt文件或htm文件放在网站txt目录下,可以一次性导入多条txt文件或htm文件,txt文件或htm文件的标题作为title,txt文件的内容写入content。导入前请用工具将文件名改为中文。! h1 a& @2 x5 `. k! R/ N
    3 v" g( Y& B2 U: N9 w/ u9 o3 C
       支持图片下载,需要下载图片时,将bk2.asp中的qt=0改为qt=1即可。7 p8 [) ~. W4 r4 v" T
    4 }/ ]1 p& o' r) v( W! b
    四、导出txt( N0 c7 v  h1 }! I9 w: \' A5 ]
    选择导出到txt,选择用一条查询命令导出数据,
    - k9 y7 A4 I  Y2 N3 y1 K输入查询语句:“ select title,content from baike where not(title like '%/%') ”(不含引号)
    6 U* Z0 a  X( y, r1 x下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。0 A0 r$ l" i: F# ^: [) ?" o# b
    点击转换,选择转换。点击转换选项,使用下面的转换语句:
    ; E. {0 \; R( k3 p3 R4 cFunction Main() ( O1 @4 o4 C3 d4 B& @, o
    DTSDestination("title") = replace(replace(trim(DTSSource("title")),chr(9),""),chr(10),"")&vbcrlf
    2 J1 M) G' i% X3 hDTSDestination("content") = replace(DTSSource("content"),"</>","")&vbcrlf&"</>"
    * F0 B$ |5 n6 e2 m3 g! K! r  I6 iMain = DTSTransformStat_OK# h6 W, W! l- G: ~4 B* m& ~" _
    End Function

      f# N; V$ C9 L1 I- Q确定后导出。
    - r$ x) E0 x' z( q% t% \' X--------------1 E0 a1 ^. _4 Y  h' i$ V7 Z
    ------------- c7 Z; r4 T; T. _
    导出带图片的内容方法
    # C7 K% b; `/ |% q) _& m5 ~5 r% l, m在企业管理器图形界面执行
    1 l- S6 U, o6 L! m& @7 O1、选择导出到txt,选择用一条查询命令导出数据,导出sql语句4 V) P4 I) `$ ?- f& B' i1 C) F1 h
    ===================================9 s7 X1 W' z  I0 @0 P$ b
    select title,bid,ispic,pid,content from baike where not(title like '%/%')9 r2 w6 i" @5 a
    ===================================' F! R9 l& M& E
    2、
    ! G8 x1 ?7 w+ M9 E& L下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。* J/ {, e9 h: H& C
    点击转换,选择转换。点击转换选项,使用下面的转换语句:* ^- D) r' h, l# J! \
    ===================================( ^" ?6 [6 R) J  Y; u
    Function Main()
    2 t2 o% A: x6 _& s2 X7 m  E7 G3 |; uDTSDestination("title") = UTF2GB(Replace(Replace(trim(DTSSource("title")),chr(9),""),chr(10),""))&vbcrlf) j) V& M( e# S
    DTSDestination("content") =HTMLEncode6(DTSSource("content"),DTSSource("ispic"),DTSSource("bid"),DTSSource("pid"))&vbcrlf&"</>"8 g, V) Z% m* `$ t" E
    Main = DTSTransformStat_OK+ }+ m1 w) u$ B
    End Function

    . c. I  D/ i" `0 X6 _function HTMLEncode6(fString,ispic,bid,pid)
    4 y3 f+ F8 w3 l  Tif isnull(fString) or fString="" then
    8 T# `4 f  h. U0 s1 wHTMLEncode6 =" "& W7 j. N% Y. }( B
    exit function0 B7 A- {- h2 B& z1 }" l  D
    end if6 u1 B! p) {& f6 G
    if isnull(ispic) or ispic="" then ispic=0
    ' b8 L, I2 }  g, M" X  K; u3 v& B! Gif isnull(bid) or bid="" then bid=12 e, Y2 U8 K- F1 X1 Q
    if isnull(pid) then pid=""' a) ], v) k% y7 Q
    fString=trim(fString)
    " ^; @& l4 @& [  WfString ="|||||"&fString7 j) X5 k% K3 ^
    fString = Replace(fString, "|||||<br>     <br>","")
    ' x9 m; O2 _' P% T; mfString = Replace(fString, "|||||","")
    ' W0 n; d' J8 C6 p  j% _fString = Replace(fString, "</>", "")" c' G7 [+ c6 f# _6 J: Y
    fString = Replace(fString, "<a href=#", "<A HREF=entry://#")
    3 P  a8 r+ M- L$ ^( D* y( afString = Replace(fString, " >", ">")
    . p. e) g) U9 ^/ r4 |+ V% V7 c0 VfString = Replace(fString, "<br> <br>","")
    & t' `2 b* F7 M" y( [fString = Replace(fString, "<br>     <br>","<br>")
    # j# {, k" d4 \/ _, ?; }6 CfString = Replace(fString, "<br><br>","<br>")% m! l3 m3 I1 b) I* r8 a( J/ c. ^3 ]
    if ispic=1  then/ L8 ]8 V) A1 e2 y
    fString ="<img src="&CHR(34)&"
    file:///down/"&int(trim(bid)/10000)&"/"&trim(bid)&".jpg"&CHR(34)&" border=0><br>"&fString
    $ A. r( ]2 R9 ?elseif ispic=2 then
    6 G6 B6 M3 d9 n+ |1 [  a6 Z: TfString ="<img src="&CHR(34)&"
    file:///down2/"&trim(pid)&".jpg"&CHR(34)&" border=0><br>"&fString: n, X5 O# U& O
    end if  x# N8 U$ s- W7 ^: a5 u
    HTMLEncode6 = fString
    6 ?' Y& k) b/ O4 `; G% N& Gend function5 U: L5 |0 j+ `" Z
    function UTF2GB(UTFStr)
    / r- h" p4 l4 r8 j: [6 y" u- utempUTFStr=UTFStr
    * O. ~9 }7 q; Q" ^' Q, o4 oUTFStr=replace(UTFStr,"&","&")9 u5 M* G0 u$ F  K1 b
    UTFStr=replace(UTFStr,"&#12539;","·")$ T0 G* w" w4 K
    UTFStr=replace(UTFStr,"&#8231;","·")
    1 l2 T3 i* m* B+ k# G5 V( [) rUTFStr=replace(UTFStr,"'","’")
    / d) a! k$ X0 p; Y. {& S2 AUTFStr=replace(UTFStr,"&#8206;","")
      S6 G* j: K9 G/ L: J5 m$ Dif len(trim(UTFStr))>0 then4 g4 P5 h" ~- E5 O2 {% N4 E/ z
    UTF2GB=UTFStr
    , F  \1 c9 B$ }, s  Y" nelse+ i2 w  B9 J  V7 I
    UTF2GB=tempUTFStr. M9 Z7 \4 D* u- J
    end if
    : e; _! s9 [  ]6 a# J7 Bend function
    ( M3 f4 t8 }& R
    ===================================
    2 o) }, l  d2 h' u2 W8 H9 G) [3.转换辞典" L) C1 I8 L/ C- u7 w
    制作图片文件时将图片文件夹下的那个隐藏文件Thumbs.db文件删除$ I  N8 F2 i. b* s* _+ o
    在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的
    0 ?8 b% t* m8 V7 @4 i% m% G% s所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下3 ?7 \+ w- e# n& ]& a( j- a

      `# I" Q: _6 I+ R! h五、转换mdict7 B& P, k9 d/ d/ m8 \$ i7 n
    原始格式:选mdict(html)
    , e1 c3 j9 P2 q7 O
    7 ?6 t% q: Y1 ^- [8 y# g1 e# D编码方式:# M1 `9 k6 t: [1 `
    文件类型ansi,编码方式选GBK
    4 u1 W' E; h  G" M; W. I文件类型unicode,编码方式选utf-16* x$ X! ^7 j' Y1 x) t" R
    即可3 u. D: P$ o6 V0 F( h) _% G

    ! @% R9 A3 W6 z1 L& E7 C! C六、清除临时文件(仅仅是个人数据库不需要)8 Z) L- t2 H; `) C
    更新数据时,会在系统盘windows/temp下产生临时ie文件,请定时删除( }) m" B  @* b! m

    ' J& Q% D: }4 x9 f7 I! M; n- q' R七、收缩数据库日志文件(数据库不是太大没必要进行)5 H0 Y" ^; \2 ?) G2 L% K, T' v
    收缩数据库文件(如果不压缩,数据库的文件不会减小)
    ! Y2 A9 w  C3 x# \! l. Z查询管理器里执行
    $ v* e* I, |1 R. U$ V& \1 gDUMP  TRANSACTION  库名  WITH NO_LOG2 O6 N1 M# V" @
    BACKUP LOG 数据库名 WITH NO_LOG - U8 L! q9 Y7 l1 |9 S- y
    然后
    4 L6 m0 X* R; R1 G/ }9 p& Q企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
    ' R* U; s9 _) m9 g--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
    + R  e4 s4 H4 Y3 g8 ]4 q: M--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
    9 O1 e# i. N0 ?; y# t, F  z! V# c/ w1 W+ H' T; t7 S  l4 H% D
    八、导出时删除标题重复的数据
    & _: y. J9 g- n, R* }  K( _' n2 Oselect title,content from baike where id  in(SELECT MAX(id) AS id FROM baike  GROUP BY title)
    6 F6 G$ a2 @  z& P& I* V; Y, o8 g9 q- \0 J2 O+ f( _" G
    [ 本帖最后由 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 | 显示全部楼层
    添加了图片,更新了部分网页文件,以前下载的请重新下载。! }: x" \$ d8 }) M& ]) g" _1 ]
    支持批量文本导入,可以建立个人的百科。
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2008-10-11 14:32:51 | 显示全部楼层
    漏掉了一个文件,已经放上/ j2 V2 m+ y9 x9 ~+ {6 u1 z
    请重新下载。
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2008-10-14 10:40:48 | 显示全部楼层
    支持图片下载,需要下载图片时,将bk2.asp中的qt=0改为qt=1即可。+ N! I! S/ g$ ^9 t
    图片保存在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 P! D% G& n/ Y' l+ e" X
    添加了图片,更新了部分网页文件,以前下载的请重新下载。
    3 q+ }/ u# M4 j* A支持批量文本导入,可以建立个人的百科。
    & }' D8 ~. u; q  |5 Q( F9 }; C  E
    ) O  w& q) C6 L/ l
    个人百科,添加也是这样么?
  • 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麻烦你给出个《百度知道》的制作方法,如果有百度百科和百度知道这两本字典,那真的无敌了。! d2 U8 ^, v# f2 }3 l
    2 \+ i% @/ j/ X+ J
    :D :D
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2009-1-13 10:41:47 | 显示全部楼层
    百度知道 方法类似
    " A" P' X% I! S! ?下载数据- 转换数据- 导入数据 -制作

    该用户从未签到

    发表于 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取图打开
    ) }1 C! ~4 Y- G) N0 ^如果是未取得数据把bk2.asp
    7 f) u6 B  Q2 t- T<META content="60; URL=bk2.asp" http-equiv=Refresh>
    3 W) L# _) v6 ~; j$ M$ `中的60改大一些,<META content="90; URL=bk2.asp" http-equiv=Refresh>5 m5 ~  |( M' e- `. e& s
    看看
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-5-8 20:09 , Processed in 0.069230 second(s), 18 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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