查看: 70268|回复: 32
打印 上一主题 下一主题

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

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

    [LV.4]偶尔看看III

    29

    主题

    553

    回帖

    5307

    积分

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    5307

    灌水大神章小蜜蜂章笑傲江湖章管理组专用章

    跳转到指定楼层
    1
    发表于 2008-10-6 09:42:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 ldlcau 于 2010-3-15 08:23 编辑

    修改了三个文件 见附件baike-2010-3-10.rar    baike-2010-3-15.rar (32.67 KB, 下载次数: 114)
    增加文件bk3.asp用于更新现有数据。设置更新的词条最少编辑次数,编辑次数(gxcs)超过此的则更新,请修改表baike添加字段ygx,类型int.
    表结构有变动,请按照建表语句来建表
    由于百度百科经常更换样式,下载百度百科可能会出现无法下载的现象,请修改bk2.asp。

    建表语句
    CREATE TABLE [dbo].[baike] (
            [id] [int] IDENTITY (1, 1) NOT NULL ,
            [title] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
            [leibie] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
            [content] [text] COLLATE Chinese_PRC_CI_AS NULL ,
            [gx] [smallint] NULL ,
            [bid] [int] NULL ,
            [ispic2] [smallint] NULL ,
            [gxtime] [datetime] NULL ,
            [bjtime] [datetime] NULL ,
            [gxcs] [int] NULL ,
            [bangzhu] [int] NULL ,
            [ispic] [int] NULL ,
            [tz] [int] NULL ,
            [pid] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
            [yc] [int] NULL
             [ygx] [int] NULL
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    修改了部分内容,发现运行中有错误的请重新下载.
       支持批量文本导入,可以建立个人的百科。

      最后修改时间:2010-3-15

    需要环境:sqlserver2000+iis
    下载更新百度百科, 硬盘空间最少6G,NTFS格式。网络环境:保证24小时不间断。(仅仅是个人数据库不需要)

    制作方法:

    本程序除可以下载更新百度百科外,也支持批量导入文本文件,建立个人的数据库。
    一、建立两个网页服务器
    http://127.0.0.1 正常浏览网页所用的服务器
    http://127.0.0.1:111 更新数据的 iis服务器,注意在server服务器版操作系统才支持建立多个web服务器(仅仅是个人数据库不需要)
    都指向同一目录
    index.asp 首页、浏览、添加、修改、检索
    bk2.asp 或 index3.asp 更新百科数据文件(仅仅是个人数据库不需要,可以删除)
    dsn.asp 数据库连接文件
    js.xml 保存更新进度数据,注意ntfs下要设置为所有成员均可修改

    二、建表
    表名 baike 参见上面的建表语句
    sql安装时验证方式要采用混合模式
    请注意一定要把数据库和日志设在ntfs分区,数据库大小不限,要保证剩余磁盘空间大于6G。
    数据库设置里设为自动收缩数据库文件。
    (也可利用查询分析器导入baike.sql)

    三、下载更新数据(仅仅是个人数据库不需要)
    http://127.0.0.1:111/index3.asp更新数据,更新过程中请不要关闭index3.asp。
    如果下载数据出错,请检查bk2.asp,使用response.end命令检查输出是否正确。
    可以批量导入txt文件或htm文件,txt文件或htm文件放在网站txt目录下,可以一次性导入多条txt文件或htm文件,txt文件或htm文件的标题作为title,txt文件的内容写入content。导入前请用工具将文件名改为中文。

       支持图片下载,需要下载图片时,将bk2.asp中的qt=0改为qt=1即可。

    四、导出txt
    选择导出到txt,选择用一条查询命令导出数据,
    输入查询语句:“ select title,content from baike where not(title like '%/%') ”(不含引号)
    下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。
    点击转换,选择转换。点击转换选项,使用下面的转换语句:
    Function Main()
    DTSDestination("title") = replace(replace(trim(DTSSource("title")),chr(9),""),chr(10),"")&vbcrlf
    DTSDestination("content") = replace(DTSSource("content"),"</>","")&vbcrlf&"</>"
    Main = DTSTransformStat_OK
    End Function

    确定后导出。
    --------------
    ------------
    导出带图片的内容方法
    在企业管理器图形界面执行
    1、选择导出到txt,选择用一条查询命令导出数据,导出sql语句
    ===================================
    select title,bid,ispic,pid,content from baike where not(title like '%/%')
    ===================================
    2、
    下一步中,文件类型选ansi或者unicode,列分隔符选制表符,文本限定符选<无>。
    点击转换,选择转换。点击转换选项,使用下面的转换语句:
    ===================================
    Function Main()
    DTSDestination("title") = UTF2GB(Replace(Replace(trim(DTSSource("title")),chr(9),""),chr(10),""))&vbcrlf
    DTSDestination("content") =HTMLEncode6(DTSSource("content"),DTSSource("ispic"),DTSSource("bid"),DTSSource("pid"))&vbcrlf&"</>"
    Main = DTSTransformStat_OK
    End Function

    function HTMLEncode6(fString,ispic,bid,pid)
    if isnull(fString) or fString="" then
    HTMLEncode6 =" "
    exit function
    end if
    if isnull(ispic) or ispic="" then ispic=0
    if isnull(bid) or bid="" then bid=1
    if isnull(pid) then pid=""
    fString=trim(fString)
    fString ="|||||"&fString
    fString = Replace(fString, "|||||<br>     <br>","")
    fString = Replace(fString, "|||||","")
    fString = Replace(fString, "</>", "")
    fString = Replace(fString, "<a href=#", "<A HREF=entry://#")
    fString = Replace(fString, " >", ">")
    fString = Replace(fString, "<br> <br>","")
    fString = Replace(fString, "<br>     <br>","<br>")
    fString = Replace(fString, "<br><br>","<br>")
    if ispic=1  then
    fString ="<img src="&CHR(34)&"
    file:///down/"&int(trim(bid)/10000)&"/"&trim(bid)&".jpg"&CHR(34)&" border=0><br>"&fString
    elseif ispic=2 then
    fString ="<img src="&CHR(34)&"
    file:///down2/"&trim(pid)&".jpg"&CHR(34)&" border=0><br>"&fString
    end if
    HTMLEncode6 = fString
    end function
    function UTF2GB(UTFStr)
    tempUTFStr=UTFStr
    UTFStr=replace(UTFStr,"&","&")
    UTFStr=replace(UTFStr,"&#12539;","·")
    UTFStr=replace(UTFStr,"&#8231;","·")
    UTFStr=replace(UTFStr,"'","’")
    UTFStr=replace(UTFStr,"&#8206;","")
    if len(trim(UTFStr))>0 then
    UTF2GB=UTFStr
    else
    UTF2GB=tempUTFStr
    end if
    end function
    ===================================
    3.转换辞典
    制作图片文件时将图片文件夹下的那个隐藏文件Thumbs.db文件删除
    在使用MdxBuilder制作词库时,将Data路径指向上面存放数据的目录,该目录中的
    所有文件都会被压缩到后缀名为.mdd文件中,使用时该.mdd文件应当与.mdx文件在同一目录下

    五、转换mdict
    原始格式:选mdict(html)

    编码方式:
    文件类型ansi,编码方式选GBK
    文件类型unicode,编码方式选utf-16
    即可

    六、清除临时文件(仅仅是个人数据库不需要)
    更新数据时,会在系统盘windows/temp下产生临时ie文件,请定时删除

    七、收缩数据库日志文件(数据库不是太大没必要进行)
    收缩数据库文件(如果不压缩,数据库的文件不会减小)
    查询管理器里执行
    DUMP  TRANSACTION  库名  WITH NO_LOG
    BACKUP LOG 数据库名 WITH NO_LOG
    然后
    企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
    --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
    --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。

    八、导出时删除标题重复的数据
    select title,content from baike where id  in(SELECT MAX(id) AS id FROM baike  GROUP BY title)

    [ 本帖最后由 ldlcau 于 2009-1-6 10:11 编辑 ]

    表结构.jpg (133.24 KB, 下载次数: 0)

    表结构.jpg

    导出sql数据.jpg (121.73 KB, 下载次数: 0)

    导出sql数据.jpg

    导出sql数据-转换.jpg (163.12 KB, 下载次数: 0)

    导出sql数据-转换.jpg

    mdict制作.jpg (70.4 KB, 下载次数: 0)

    mdict制作.jpg

    网页界面.jpg (48.22 KB, 下载次数: 0)

    网页界面.jpg

    baudu3.rar

    492.73 KB, 下载次数: 350, 下载积分: 米 -5 粒

    网页文件

    baidu导出.rar

    969 Bytes, 下载次数: 68, 下载积分: 米 -5 粒

    评分

    1

    查看全部评分

    lin_5151 该用户已被删除
    2
    发表于 2008-10-6 18:15:36 | 只看该作者
    虽然不太懂,但还是要顶地。
    eugene 该用户已被删除
    3
    发表于 2008-10-7 08:58:26 | 只看该作者
    学习了。

    该用户从未签到

    6

    主题

    239

    回帖

    1161

    积分

    解元

    Rank: 5Rank: 5

    积分
    1161
    4
    发表于 2008-10-8 13:59:14 | 只看该作者
    支持一下,慢慢体会,谢谢老大分享好经验!!!

    该用户从未签到

    0

    主题

    10

    回帖

    62

    积分

    被盗用户

    积分
    62
    5
    发表于 2008-10-10 00:13:45 | 只看该作者

    顶顶顶

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

    [LV.4]偶尔看看III

    29

    主题

    553

    回帖

    5307

    积分

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    5307

    灌水大神章小蜜蜂章笑傲江湖章管理组专用章

    6
     楼主| 发表于 2008-10-11 09:16:11 | 只看该作者
    添加了图片,更新了部分网页文件,以前下载的请重新下载。
    支持批量文本导入,可以建立个人的百科。
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    29

    主题

    553

    回帖

    5307

    积分

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    5307

    灌水大神章小蜜蜂章笑傲江湖章管理组专用章

    7
     楼主| 发表于 2008-10-11 14:32:51 | 只看该作者
    漏掉了一个文件,已经放上
    请重新下载。
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    29

    主题

    553

    回帖

    5307

    积分

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    5307

    灌水大神章小蜜蜂章笑傲江湖章管理组专用章

    8
     楼主| 发表于 2008-10-14 10:40:48 | 只看该作者
    支持图片下载,需要下载图片时,将bk2.asp中的qt=0改为qt=1即可。
    图片保存在down文件夹下

    该用户从未签到

    0

    主题

    2

    回帖

    0

    积分

    白身

    Rank: 1

    积分
    0
    9
    发表于 2008-11-19 16:42:09 | 只看该作者
    支持:) :)

    该用户从未签到

    1

    主题

    14

    回帖

    55

    积分

    童生

    Rank: 2

    积分
    55
    10
    发表于 2008-12-8 10:10:53 | 只看该作者
    看得我云里雾里的。。。学 习了!

    该用户从未签到

    0

    主题

    14

    回帖

    104

    积分

    被盗用户

    积分
    104
    11
    发表于 2009-1-4 16:52:40 | 只看该作者
    谢谢LZ:loveliness:
    eugene 该用户已被删除
    12
    发表于 2009-1-6 08:26:15 | 只看该作者
    原帖由 ldlcau 于 2008-10-11 09:16 发表
    添加了图片,更新了部分网页文件,以前下载的请重新下载。
    支持批量文本导入,可以建立个人的百科。


    个人百科,添加也是这样么?
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    29

    主题

    553

    回帖

    5307

    积分

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    5307

    灌水大神章小蜜蜂章笑傲江湖章管理组专用章

    13
     楼主| 发表于 2009-1-6 10:06:50 | 只看该作者
    个人百科可以通过文本文件批量导入

    该用户从未签到

    0

    主题

    14

    回帖

    104

    积分

    被盗用户

    积分
    104
    14
    发表于 2009-1-6 11:45:04 | 只看该作者
    IZ麻烦你给出个《百度知道》的制作方法,如果有百度百科和百度知道这两本字典,那真的无敌了。:lol

    该用户从未签到

    5

    主题

    36

    回帖

    4

    积分

    童生

    Rank: 2

    积分
    4
    15
    发表于 2009-1-13 10:02:07 | 只看该作者
    IZ麻烦你给出个《百度知道》的制作方法,如果有百度百科和百度知道这两本字典,那真的无敌了。

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

    [LV.4]偶尔看看III

    29

    主题

    553

    回帖

    5307

    积分

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    5307

    灌水大神章小蜜蜂章笑傲江湖章管理组专用章

    16
     楼主| 发表于 2009-1-13 10:41:47 | 只看该作者
    百度知道 方法类似
    下载数据- 转换数据- 导入数据 -制作

    该用户从未签到

    57

    主题

    214

    回帖

    1307

    积分

    解元

    Rank: 5Rank: 5

    积分
    1307

    灌水大神章笑傲江湖章小蜜蜂章

    QQ
    17
    发表于 2009-1-20 18:24:43 | 只看该作者
    严重看不懂,偶果然是菜鸟呀

    该用户从未签到

    1

    主题

    46

    回帖

    9

    积分

    童生

    Rank: 2

    积分
    9
    18
    发表于 2009-3-9 11:42:18 | 只看该作者
    楼主真是神人啊....

    该用户从未签到

    0

    主题

    4

    回帖

    0

    积分

    白身

    Rank: 1

    积分
    0
    19
    发表于 2009-3-30 22:04:29 | 只看该作者
    正在用,很好很强大!!

    该用户从未签到

    0

    主题

    9

    回帖

    0

    积分

    白身

    Rank: 1

    积分
    0
    20
    发表于 2009-6-7 10:13:44 | 只看该作者
    太麻烦了

    该用户从未签到

    2

    主题

    13

    回帖

    5

    积分

    童生

    Rank: 2

    积分
    5
    21
    发表于 2009-6-13 01:07:30 | 只看该作者
    谢谢  支持呀

    该用户从未签到

    2

    主题

    14

    回帖

    131

    积分

    童生

    Rank: 2

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

    该用户从未签到

    1

    主题

    4

    回帖

    1413

    积分

    解元

    Rank: 5Rank: 5

    积分
    1413
    23
    发表于 2009-7-23 01:41:05 | 只看该作者
    Interesting!

    该用户从未签到

    1

    主题

    19

    回帖

    9

    积分

    童生

    Rank: 2

    积分
    9
    24
    发表于 2009-7-25 09:41:31 | 只看该作者
    外行看内行,真的一头雾水!:L
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    29

    主题

    553

    回帖

    5307

    积分

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    5307

    灌水大神章小蜜蜂章笑傲江湖章管理组专用章

    25
     楼主| 发表于 2009-12-9 13:19:51 | 只看该作者
    默认bk2.asp取图打开
    如果是未取得数据把bk2.asp
    <META content="60; URL=bk2.asp" http-equiv=Refresh>
    中的60改大一些,<META content="90; URL=bk2.asp" http-equiv=Refresh>
    看看