掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 70606|回复: 32

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

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

    [LV.4]偶尔看看III

    发表于 2008-10-6 09:42:44 | 显示全部楼层 |阅读模式
    本帖最后由 ldlcau 于 2010-3-15 08:23 编辑 ; ]/ K4 ~2 f$ \" j5 W
    ( \& Y: N, `* I; j0 H* q
    修改了三个文件 见附件baike-2010-3-10.rar   
    & K& Q) z9 b) x  o3 k  E7 }* z增加文件bk3.asp用于更新现有数据。设置更新的词条最少编辑次数,编辑次数(gxcs)超过此的则更新,请修改表baike添加字段ygx,类型int.% L1 `- p# [' e! i
    表结构有变动,请按照建表语句来建表. n0 y! p+ k# b1 |& Y
    由于百度百科经常更换样式,下载百度百科可能会出现无法下载的现象,请修改bk2.asp。- @% d$ [1 D2 G; l. W% W+ Y

    & [( v) Y8 O' x建表语句5 d0 d8 a& z! X; X! Z: ?
    CREATE TABLE [dbo].[baike] (, N* b7 `6 s* z7 n' p# y. e, r) s1 z7 o" S
            [id] [int] IDENTITY (1, 1) NOT NULL ,
    2 X; F8 c- r! b+ i4 Y/ l        [title] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,9 x5 {/ T+ Q8 g# K: g- _5 l+ y
            [leibie] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
    ; ]* a+ [2 a. p/ T1 w5 l* Z) w        [content] [text] COLLATE Chinese_PRC_CI_AS NULL ,
    : E; Q+ w# t  [' h        [gx] [smallint] NULL ,
    . d& f  H9 E, N2 Y# o% v. y        [bid] [int] NULL ,
    8 X4 ]; k% i' E6 C* L' \. m        [ispic2] [smallint] NULL ,
    & N: B, X5 u  U, c+ S. p        [gxtime] [datetime] NULL ,
    * i2 @. ^4 L/ d. h# E        [bjtime] [datetime] NULL ,
    6 C7 ^2 q9 {' m+ f        [gxcs] [int] NULL ,6 F6 Y4 r% c  e6 u. k: j1 b
            [bangzhu] [int] NULL ,
    6 u, R6 D, `5 P        [ispic] [int] NULL ,  X) e4 D) D( \
            [tz] [int] NULL ,+ C  U7 l0 R! I
            [pid] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    . J- ?+ y5 |' e4 L4 O: Q) g! F        [yc] [int] NULL * P* w& j7 N  Y. t
             [ygx] [int] NULL
    . k0 P3 Z3 Q5 O0 j( Y. Q) i. S) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]; L9 F" u) K6 y8 u
    修改了部分内容,发现运行中有错误的请重新下载.
    4 B* r9 [/ Y' c# k   支持批量文本导入,可以建立个人的百科。8 U; ~9 M$ S: e& l) c
    ( ^6 K8 J5 J: J$ S9 H4 T% Y
      最后修改时间:2010-3-15' g, r' A: i; z( p/ b9 ~, i

    8 E( C2 P$ |9 ^8 u3 E$ g
    需要环境:sqlserver2000+iis
    " E" ]* G# J6 `下载更新百度百科, 硬盘空间最少6G,NTFS格式。网络环境:保证24小时不间断。(仅仅是个人数据库不需要)
    - B1 r5 y- Q9 X- D0 Y! g7 h% a; u7 k
    # q( L3 u9 e2 F& m, h制作方法:
    0 x  ^3 d2 k# D  e
    + G1 l2 w, ^8 G- e! R, c! l本程序除可以下载更新百度百科外,也支持批量导入文本文件,建立个人的数据库。
    & }" d# y# c8 o0 {0 g" T一、建立两个网页服务器" [) {. ?0 f8 e5 Z/ ~
    http://127.0.0.1 正常浏览网页所用的服务器
    8 c# f; g; V- }# A, G' k9 Hhttp://127.0.0.1:111 更新数据的 iis服务器,注意在server服务器版操作系统才支持建立多个web服务器(仅仅是个人数据库不需要)
    # D; q  P& S: @$ f* t( k/ Q都指向同一目录
    # i* l( G2 T! u  g" rindex.asp 首页、浏览、添加、修改、检索$ L% h0 _0 s$ j
    bk2.asp 或 index3.asp 更新百科数据文件(仅仅是个人数据库不需要,可以删除)6 @9 A/ \2 h& _1 c; c5 D
    dsn.asp 数据库连接文件
    + h* L! D5 }$ p/ p$ Njs.xml 保存更新进度数据,注意ntfs下要设置为所有成员均可修改: _8 b% Q3 R% W0 ^6 B9 z
    8 E' u1 K: W/ t, D& s
    二、建表 * a( A$ @; I3 W9 t1 A1 N
    表名 baike 参见上面的建表语句
    * h4 f) B% b+ ]& Y6 osql安装时验证方式要采用混合模式9 x# U8 T) _5 M9 A4 f
    请注意一定要把数据库和日志设在ntfs分区,数据库大小不限,要保证剩余磁盘空间大于6G。# m0 s. `- p, T0 q0 \2 H( |
    数据库设置里设为自动收缩数据库文件。) R# v: S. L  F7 u
    (也可利用查询分析器导入baike.sql)6 L- z, ~0 S! G& j; u- c1 L

    1 r9 Q8 w  I8 x8 ]三、下载更新数据(仅仅是个人数据库不需要), O0 W2 n+ g/ w
    http://127.0.0.1:111/index3.asp更新数据,更新过程中请不要关闭index3.asp。
    2 ]) A! L4 z9 b, O, D' k如果下载数据出错,请检查bk2.asp,使用response.end命令检查输出是否正确。- b2 I+ _. m/ Q- A  l% `
    可以批量导入txt文件或htm文件,txt文件或htm文件放在网站txt目录下,可以一次性导入多条txt文件或htm文件,txt文件或htm文件的标题作为title,txt文件的内容写入content。导入前请用工具将文件名改为中文。
    2 P4 ~: S0 M0 r

    ) Y$ Y  q$ P( j- d/ O8 G9 @* |, @1 y   支持图片下载,需要下载图片时,将bk2.asp中的qt=0改为qt=1即可。( l2 z6 E! f- f9 r7 B  ?! f

    ; c( h, I( a2 n  d1 t# E; M, ~( W4 ~四、导出txt* Z7 J' t! `/ ]5 ~/ R0 l8 R4 ^7 O7 w
    选择导出到txt,选择用一条查询命令导出数据,
    / u! I8 @5 [. O; k5 _输入查询语句:“ select title,content from baike where not(title like '%/%') ”(不含引号), T+ z" a' A- f7 p; ?& l, g( h
    下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。
    ' k6 m3 L! F0 |& ~1 o点击转换,选择转换。点击转换选项,使用下面的转换语句:
    $ G2 J5 Q) D) {( Z# w7 R- qFunction Main()
    + a* ]$ b1 p/ T3 UDTSDestination("title") = replace(replace(trim(DTSSource("title")),chr(9),""),chr(10),"")&vbcrlf" U- l+ m4 K9 U4 M; e, w
    DTSDestination("content") = replace(DTSSource("content"),"</>","")&vbcrlf&"</>"
    6 N- v5 g# B7 g# m+ f2 p6 M6 ]  IMain = DTSTransformStat_OK
    # {" O( ]& m) m9 [" }: r3 rEnd Function
    2 t- j$ y$ K! B- w% o' I
    确定后导出。+ v4 u* @! c6 e5 ~% r1 U
    --------------. K4 h  H/ @6 U
    ------------
    " |# x; v4 k8 I' v7 g9 C导出带图片的内容方法
    7 m/ ]$ ^5 D% }3 r1 C2 m- G在企业管理器图形界面执行7 x/ \- @8 {4 ~3 Y
    1、选择导出到txt,选择用一条查询命令导出数据,导出sql语句
    $ G/ `, {- q  F  A, y5 K===================================
    9 {5 ~9 _: }# \select title,bid,ispic,pid,content from baike where not(title like '%/%')5 G3 N- m( q: m. D5 q& Z0 E3 Z* J: `
    ===================================
    + m* L- A* |9 f+ j; m' l1 f2、
    5 x' H( n$ Y% h8 y% A4 u( J# P6 @下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。
    7 H8 e$ P' ], b点击转换,选择转换。点击转换选项,使用下面的转换语句:
    ' T5 h$ g5 H8 F+ s9 u===================================
    + c2 w/ d3 Q7 y" K) cFunction Main()
    5 o: ?! A# b- g8 s' sDTSDestination("title") = UTF2GB(Replace(Replace(trim(DTSSource("title")),chr(9),""),chr(10),""))&vbcrlf
    ( ?! f8 ?! O" `: D: SDTSDestination("content") =HTMLEncode6(DTSSource("content"),DTSSource("ispic"),DTSSource("bid"),DTSSource("pid"))&vbcrlf&"</>"1 b! z: }* i/ a6 Q
    Main = DTSTransformStat_OK* j# l4 {" u7 z  h
    End Function

    1 Z, x1 ]9 ]% w+ jfunction HTMLEncode6(fString,ispic,bid,pid)8 @0 c4 [, h$ P8 ^1 p
    if isnull(fString) or fString="" then' J( U) l" M9 S6 `' c( ^
    HTMLEncode6 =" "2 ~+ u! g9 t" E3 l8 y% k! m9 @
    exit function
    $ z, ~5 |  K/ W. K$ b2 Y9 ^end if5 B, R6 R1 j; Y  F5 k
    if isnull(ispic) or ispic="" then ispic=02 \$ }' Z) v& V% z$ M  _, z7 r
    if isnull(bid) or bid="" then bid=1
    . Q  s" A' L: V6 z5 dif isnull(pid) then pid=""
    # Q( R  P7 X6 B  ]0 zfString=trim(fString)+ ]; O; D: X; T) Y' v
    fString ="|||||"&fString
    : y- J" G7 Q. W) UfString = Replace(fString, "|||||<br>     <br>","")* |" L5 f8 }. ?
    fString = Replace(fString, "|||||","")2 c& N% L& \) S9 l. M
    fString = Replace(fString, "</>", "")& M2 v3 Q1 E5 r9 J! w! N
    fString = Replace(fString, "<a href=#", "<A HREF=entry://#")
    ! F, M7 h, _2 w) M, @fString = Replace(fString, " >", ">")9 ~* v0 Q$ G) v) j" p
    fString = Replace(fString, "<br> <br>","")# @/ W5 b1 B4 `; J# [2 a
    fString = Replace(fString, "<br>     <br>","<br>")& x- [4 t( R7 w2 m& n0 ]& b
    fString = Replace(fString, "<br><br>","<br>")
    ; X1 P. ]# X/ X$ B+ A" \if ispic=1  then
    ! c3 H0 V; j6 R' d/ AfString ="<img src="&CHR(34)&"
    file:///down/"&int(trim(bid)/10000)&"/"&trim(bid)&".jpg"&CHR(34)&" border=0><br>"&fString0 Z( ]: c6 W1 r3 k; K- H
    elseif ispic=2 then) u8 k6 H: b: @) _
    fString ="<img src="&CHR(34)&"
    file:///down2/"&trim(pid)&".jpg"&CHR(34)&" border=0><br>"&fString
    ! Y+ r. E8 Y# \+ @* L; rend if# B8 K* w3 v5 p- K, g2 ]
    HTMLEncode6 = fString
    / k( L; T9 P# u1 U3 p' fend function
    ' k% G( p) E7 U1 t5 H; {! pfunction UTF2GB(UTFStr)! f/ o/ x$ L. y6 V5 x
    tempUTFStr=UTFStr
    # I( [. v' H6 Q4 OUTFStr=replace(UTFStr,"&","&"); G# @% S3 f# x1 ~5 W5 R
    UTFStr=replace(UTFStr,"&#12539;","·"). G: b. g- K3 r: s
    UTFStr=replace(UTFStr,"&#8231;","·")
    9 l  s1 Q  ]+ b" ^* v& K- yUTFStr=replace(UTFStr,"'","’")
    2 `% f% r* f- ~( B3 ^/ QUTFStr=replace(UTFStr,"&#8206;",""); [& ]# i. G. f  M" ]& `8 d; [3 i
    if len(trim(UTFStr))>0 then0 E- `* [7 ~- E
    UTF2GB=UTFStr
      l6 ~) r+ e6 Q3 r7 J$ g2 Oelse
    . B6 s: N) |; _UTF2GB=tempUTFStr
    : Z2 V; {; I$ @5 @- U" B4 }end if8 V& H1 v. l- R6 d* M
    end function
    0 P$ K; c0 M, y6 \5 _: ]
    ===================================
    ; B7 A5 S; Z- ], V, j7 v3.转换辞典
    0 E. Z  }+ k. w$ y5 j, R制作图片文件时将图片文件夹下的那个隐藏文件Thumbs.db文件删除" u3 Q  ~' W6 m& x8 F# g1 N3 n/ L
    在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的* c, L7 `( Y9 p9 j' J# ^
    所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下2 b( r& f  [8 G* T* h, j0 i* \$ S

    , I7 j9 ?( g6 B五、转换mdict4 w5 l9 R0 n+ @6 [7 u& m$ o6 z
    原始格式:选mdict(html)
    4 H5 b4 D% ?  ^2 I( J& P
    ( e5 n( i5 y) r: j编码方式:
    4 M* ^1 o  n; Z3 S文件类型ansi,编码方式选GBK6 h0 Y- N6 J: k6 C3 K
    文件类型unicode,编码方式选utf-16! a- ]2 k- N) i
    即可  m4 u: v. m$ k; Y
    * @4 U2 i. x1 S& y6 R# H( c* |
    六、清除临时文件(仅仅是个人数据库不需要)" h& B8 f( w; ~, _: ?
    更新数据时,会在系统盘windows/temp下产生临时ie文件,请定时删除* Z' W, m4 g$ F1 P& v
    ; t6 W$ t. a  r( {
    七、收缩数据库日志文件(数据库不是太大没必要进行)
    1 a1 r& a0 k) G, i% T0 @! Z收缩数据库文件(如果不压缩,数据库的文件不会减小)+ S& _3 e( J4 U% p" p+ a" @9 ~8 a
    查询管理器里执行$ |2 Z9 e! _, |, Y; s' y
    DUMP  TRANSACTION  库名  WITH NO_LOG0 }; M* c- Y* z) O& L" E$ I
    BACKUP LOG 数据库名 WITH NO_LOG 9 ^, h6 q1 F9 T) J/ r' [* @1 B
    然后
    ! [) b1 n% z" X5 Z, b( R) z企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 1 F% ^  y/ p$ a+ D$ H- l6 J
    --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。6 v' h- d$ y8 Y# U
    --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。! h) v* ^3 W# d# {7 [2 Y
    : N7 r4 }4 ?7 v' ]% _- U) o
    八、导出时删除标题重复的数据" b. m: m; `' s
    select title,content from baike where id  in(SELECT MAX(id) AS id FROM baike  GROUP BY title)
    5 J) i* H# D* z, }
    - D, O8 U* `( k. u4 _$ e! Q[ 本帖最后由 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 | 显示全部楼层
    添加了图片,更新了部分网页文件,以前下载的请重新下载。+ A+ p1 s+ i2 Q9 y
    支持批量文本导入,可以建立个人的百科。
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2008-10-11 14:32:51 | 显示全部楼层
    漏掉了一个文件,已经放上
    ) R7 {: @9 ?. A请重新下载。
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2008-10-14 10:40:48 | 显示全部楼层
    支持图片下载,需要下载图片时,将bk2.asp中的qt=0改为qt=1即可。
    - V9 r( ^, ]0 k2 u, l$ R图片保存在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 发表 ( J) M0 _  L" z! d# Z6 F% }
    添加了图片,更新了部分网页文件,以前下载的请重新下载。: J7 t% E+ W1 v4 G
    支持批量文本导入,可以建立个人的百科。
    0 w" D7 s. S+ I

    ) p; S1 U& b9 n% {" J个人百科,添加也是这样么?
  • 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麻烦你给出个《百度知道》的制作方法,如果有百度百科和百度知道这两本字典,那真的无敌了。
    , X, }, ~: P0 w( p: x5 y4 c: R/ b* r- t9 O2 U
    :D :D
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2009-1-13 10:41:47 | 显示全部楼层
    百度知道 方法类似
    & i1 D, s. @. V- k( O$ r- J- U下载数据- 转换数据- 导入数据 -制作

    该用户从未签到

    发表于 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取图打开
    ' @- Y  D7 w/ v6 w) H1 j如果是未取得数据把bk2.asp9 v; a- C! W# n) T7 b% n
    <META content="60; URL=bk2.asp" http-equiv=Refresh>
    8 u5 |% c7 e& v- _2 O2 G5 w& \3 R中的60改大一些,<META content="90; URL=bk2.asp" http-equiv=Refresh>% D8 p; P9 C6 ?
    看看
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-28 09:01 , Processed in 0.150786 second(s), 18 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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