数据采集不但是一门科学,也是一门艺术。如何艺术的、合理合法的将一些公开的资源分门别类的收集到自己建立的数据中心中,这是非常艺术的事情。
我现在有幸能够有半只脚踏到了这门艺术殿堂门口的台阶上。
我相信自己有一天能走进去,只是现在我的带宽还不够,无法满足我测试的需要。
我现在有幸能够有半只脚踏到了这门艺术殿堂门口的台阶上。
我相信自己有一天能走进去,只是现在我的带宽还不够,无法满足我测试的需要。
用dedecms的感受之一
[
2008/09/13 18:32 | by mlzy ]
2008/09/13 18:32 | by mlzy ]
dedecms开源确实很方便,源代码不爽的地方自己修改。
但是官方默认的功能确实有很多不是很方便的地方,比如我就遇到一个:
dedecms后台的栏目默认的是点击“顶级频道”后,其下面的一级、二级、三级。。栏目全都展开,如果一个频道上有超过100个栏目,那么就会造成后台响应很慢,甚至停止响应的问题。
如果能够改成每个级别前面有个“+”符号,点击此符号后,才打开下一级栏目的话,就方便多了。
但是官方默认的功能确实有很多不是很方便的地方,比如我就遇到一个:
dedecms后台的栏目默认的是点击“顶级频道”后,其下面的一级、二级、三级。。栏目全都展开,如果一个频道上有超过100个栏目,那么就会造成后台响应很慢,甚至停止响应的问题。
如果能够改成每个级别前面有个“+”符号,点击此符号后,才打开下一级栏目的话,就方便多了。
PHP版的Google Sitemap 生成器
[
2008/09/09 08:43 | by mlzy ]
2008/09/09 08:43 | by mlzy ]
这个是dedecms论坛上的朋友写的,我拿来用了,呵呵~
<?php
########################################
#
# PHP版的Google Sitemap 生成器 ver 0.1
# 注意:必须对当前目录有写的权限
#
########################################
#网站根域名
$WebRoot = "http://www.***.com/";//这里改成你的网址
#XML文件名称
$XMLFile = "sitemaps.xml";
#要建虑的目录[区分大小写],注意:前面加号是因为0在PHP中表示假,这样取子串位置时就不会返回假
#以本程序所在的目录为当前目录,即扫描的根目录,所以目录前面不用加上"/"
$FilterDir = "+|sysAdmin|down|";
#要索引的文件扩展名[小写]
$IndexFileExt = "+|htm|html|";
#XML头部
$XMLText = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">\n";
#XML尾部
$XMLEndText = "</urlset>";
echo "开始构建文件XML索引...";
DealFP(".");
$XMLText .= $XMLEndText;
makeFile($XMLFile,$XMLText);
echo "ok!<br><br>";
$url = $WebRoot.$XMLFile;
echo "<a href=".$url.">打开</a>:".$url;
#公用函数库:
#新建文件
function makeFile($fileName, $text){
$fp = fopen($fileName, "w+");
fwrite($fp, $text);
fclose($fp);
}
/**
* 将指定内容添加到XML中
* $f 含相对路径的文件名称
* $dt 日期时间型
*/
function addToXML($f, $dt){
$s = "<url><loc>".$GLOBALS["WebRoot"].$f."</loc><lastmod>".$dt."</lastmod></url>\n";
$GLOBALS["XMLText"] .= $s;
}
/**
* 遍历指定的目录以及子目录,将符合条件的文件加入XML
* $p 指定的目录
*/
function DealFP($p){
$FilterDir = $GLOBALS["FilterDir"];
$IndexFileExt = $GLOBALS["IndexFileExt"];
$handle=opendir($p);
if ($p==".") $path = "";
else $path = $p."/";
while ($file = readdir($handle))
{
$d = filetype($path.$file);
if ((($d=='file')||($d=='dir'))&&($file!='.')&&($file!='..'))
{
$pf = $path.$file;
//echo "[".$d."]".$pf."<br>";
if ($d=='dir')
{
if (!(strpos($FilterDir, "|".$pf."|")))
{
DealFP($pf);
}
}else{
$ext = "|".strtolower(substr($file, strrpos($file, ".")+1))."|";
if (strpos($IndexFileExt, $ext))
{
$d = filemtime($pf);
$dt = date("Y-m-d",$d)."T".date("H:i:s",$d)."+00:00";
addToXML($pf, $dt);
}
}
}
}
closedir($handle);
}
?>
随便起给名字**.PHP就可以了,放在根目录下,在后台的随便页面做个链接更新Google Sitemaps,以后就点这个链接,就OK了
<?php
########################################
#
# PHP版的Google Sitemap 生成器 ver 0.1
# 注意:必须对当前目录有写的权限
#
########################################
#网站根域名
$WebRoot = "http://www.***.com/";//这里改成你的网址
#XML文件名称
$XMLFile = "sitemaps.xml";
#要建虑的目录[区分大小写],注意:前面加号是因为0在PHP中表示假,这样取子串位置时就不会返回假
#以本程序所在的目录为当前目录,即扫描的根目录,所以目录前面不用加上"/"
$FilterDir = "+|sysAdmin|down|";
#要索引的文件扩展名[小写]
$IndexFileExt = "+|htm|html|";
#XML头部
$XMLText = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">\n";
#XML尾部
$XMLEndText = "</urlset>";
echo "开始构建文件XML索引...";
DealFP(".");
$XMLText .= $XMLEndText;
makeFile($XMLFile,$XMLText);
echo "ok!<br><br>";
$url = $WebRoot.$XMLFile;
echo "<a href=".$url.">打开</a>:".$url;
#公用函数库:
#新建文件
function makeFile($fileName, $text){
$fp = fopen($fileName, "w+");
fwrite($fp, $text);
fclose($fp);
}
/**
* 将指定内容添加到XML中
* $f 含相对路径的文件名称
* $dt 日期时间型
*/
function addToXML($f, $dt){
$s = "<url><loc>".$GLOBALS["WebRoot"].$f."</loc><lastmod>".$dt."</lastmod></url>\n";
$GLOBALS["XMLText"] .= $s;
}
/**
* 遍历指定的目录以及子目录,将符合条件的文件加入XML
* $p 指定的目录
*/
function DealFP($p){
$FilterDir = $GLOBALS["FilterDir"];
$IndexFileExt = $GLOBALS["IndexFileExt"];
$handle=opendir($p);
if ($p==".") $path = "";
else $path = $p."/";
while ($file = readdir($handle))
{
$d = filetype($path.$file);
if ((($d=='file')||($d=='dir'))&&($file!='.')&&($file!='..'))
{
$pf = $path.$file;
//echo "[".$d."]".$pf."<br>";
if ($d=='dir')
{
if (!(strpos($FilterDir, "|".$pf."|")))
{
DealFP($pf);
}
}else{
$ext = "|".strtolower(substr($file, strrpos($file, ".")+1))."|";
if (strpos($IndexFileExt, $ext))
{
$d = filemtime($pf);
$dt = date("Y-m-d",$d)."T".date("H:i:s",$d)."+00:00";
addToXML($pf, $dt);
}
}
}
}
closedir($handle);
}
?>
随便起给名字**.PHP就可以了,放在根目录下,在后台的随便页面做个链接更新Google Sitemaps,以后就点这个链接,就OK了
dedecms系统伪静态
[
2008/09/05 09:55 | by mlzy ]
2008/09/05 09:55 | by mlzy ]
1、将include复制到网站中的include目录。(这个我并未找到相关文件,而且这篇文章似乎也被原作者删除了)
2、修改数据库将所有文档设置为“仅动态”,可以进入数据库管理中,执行下面命令: update dede_archives set ismake=2 并将ismake的默认值设置为 2即伪静态。将所有栏目设置为“使用动态页”,可以进入数据库管理中,执行下面命令: update dede_arctype set isdefault=-1 并将isdefault的默认值设置为 -1即动态。
3、加入服务器重写规则,在根目录新建一个.htaccess
php_value session.use_trans_sid 0
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*) $1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/([0-9]+).html$ plus/view.php?aid=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/([0-9]+)_([0-9]+).html$ plus/view.php?aid=$2&pageno=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/list_([0-9]+)_([0-9]+).html$ plus/list.php?typeid=$2&PageNo=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/list_([0-9]+).html$ plus/list.php?typeid=$2 [L]
4、调整完毕后到DEDE后台管理程序中,更新一下首页,完成。
2、修改数据库将所有文档设置为“仅动态”,可以进入数据库管理中,执行下面命令: update dede_archives set ismake=2 并将ismake的默认值设置为 2即伪静态。将所有栏目设置为“使用动态页”,可以进入数据库管理中,执行下面命令: update dede_arctype set isdefault=-1 并将isdefault的默认值设置为 -1即动态。
3、加入服务器重写规则,在根目录新建一个.htaccess
php_value session.use_trans_sid 0
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*) $1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/([0-9]+).html$ plus/view.php?aid=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/([0-9]+)_([0-9]+).html$ plus/view.php?aid=$2&pageno=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/list_([0-9]+)_([0-9]+).html$ plus/list.php?typeid=$2&PageNo=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/list_([0-9]+).html$ plus/list.php?typeid=$2 [L]
4、调整完毕后到DEDE后台管理程序中,更新一下首页,完成。
DedeCms的SEO技巧之URL篇
[
2008/09/04 22:00 | by mlzy ]
2008/09/04 22:00 | by mlzy ]
帮别人写了一些测试用的SEO的站点,用的工具是DEDECMS3.1,当时找想关的CMS程序就花了很多心思,开始用的是国外的几个,都不顺手,在别人的博客看到了有人推荐DEDECMS,下了一个用用,经过小小的努力,当然也是因为有压力(我这个人没点压力什么都做不好),掌握了一些SEO优化技巧,大家一起分享一下吧!
所谓SEO技巧,这里要说的不是标签之类的,是URL,不知道大家是否留意过这个。 DEDECMS,提供了几种生成URL的方法,把它叫做“文章命名规则”,有这几种:{Y}、{M}、{D},{timestamp},{aid},{pinyin}, {py},{typedir},{cc}这几种,大家常用哪些呢?在DEDECMS的论坛上,看见有人寻问用{pinyin}的方法,如何去掉文章的 ID,一直没有人回复,也不知道那位兄弟解决了没,但是这里有更好的方法命名后的地址如:http: //www.xxx.com/xxx/dkofkvom.html,类似这种随机数的样子,并且去掉了\"-""_"之类的字符,想知道吗,打开DW,与我一起动手改吧!
首先打开,include\inc_channel_unit_functions.php,在56行左右,$articleRule = str_replace("{py}",GetPinyin($title,1)."_".$aid,$articleRule);改成$ articleRule = str_replace("{py}",GetPinyin($title,1),$articleRule);也就是去掉."_".$aid.
然后在include\inc\inc_fun_funAdmin.php中,把第一个函数function SpGetPinyin($str,$ishead=0,$isclose=1)下面的FOR循环修改为如下:
for($i=0;$i<24;$i++){
if(ord($str[$i])>0x80)
{
$c = $str[$i].$str[$i+1];
$i++;
if(isset($pinyins[$c])){
if($ishead==0) $restr .= $pinyins[$c];
else $restr .= $pinyins[$c][0];
}else $restr .= "";
}else if( eregi("[a-z]",$str[$i]) ){ $restr .= $str[$i]; }
else{ $restr .= ""; }
}
这两部都做完之后,把“文章命名规则”写为{typedir}/{py}.html,测试一下你的文章URL吧!是不是很SEO。
所谓SEO技巧,这里要说的不是
首先打开,include\inc_channel_unit_functions.php,在56行左右,$articleRule = str_replace("{py}",GetPinyin($title,1)."_".$aid,$articleRule);改成$ articleRule = str_replace("{py}",GetPinyin($title,1),$articleRule);也就是去掉."_".$aid.
然后在include\inc\inc_fun_funAdmin.php中,把第一个函数function SpGetPinyin($str,$ishead=0,$isclose=1)下面的FOR循环修改为如下:
for($i=0;$i<24;$i++){
if(ord($str[$i])>0x80)
{
$c = $str[$i].$str[$i+1];
$i++;
if(isset($pinyins[$c])){
if($ishead==0) $restr .= $pinyins[$c];
else $restr .= $pinyins[$c][0];
}else $restr .= "";
}else if( eregi("[a-z]",$str[$i]) ){ $restr .= $str[$i]; }
else{ $restr .= ""; }
}
这两部都做完之后,把“文章命名规则”写为{typedir}/{py}.html,测试一下你的文章URL吧!是不是很SEO。
dede生成静态页和动态页转换
[
2008/09/04 16:16 | by mlzy ]
2008/09/04 16:16 | by mlzy ]
这是我自己原创改的,因为我发现网上流传的是错误的,代码改动错误,文件位置错误。
1.如何修改默认发布为动态页;[有人成功了,我似乎无效]
这个其实很简单,会改html就可以了!把dede/templates文件夹打开,用编辑器打开article_add.html,找到
<td width=”90″>发布选项:</td>
<td> <input name=”ishtml” type=”radio” class=”np” value=”1″ checked="checked">
生成HTML
<input name=”ishtml” type=”radio” class=”np” value=”0″>
仅动态浏览</td>
修改为:
<td width=”90″>发布选项:</td>
<td> <input name=”ishtml” type=”radio” class=”np” value=”1″>
生成HTML
<input name=”ishtml” type=”radio” class=”np” value=”0″ checked="checked">
仅动态浏览</td>
刷新一下发布文章页面看看可以了不!用DW可以很直观的修改。
2.如何批量修改动态发布为静态生成,或者反过来修改。
用phpmyadmin打开dede_dede_archives 这个表
ismake这个字段就是我们要修改的对象。
运行sql语句:
UPDATE dede_archives SET ismake = ‘-1′ 修改所有文档为动态浏览
UPDATE dede_archives SET ismake = ‘1′ 修改所有文档为静态发布
这样就可以了
1.如何修改默认发布为动态页;[有人成功了,我似乎无效]
这个其实很简单,会改html就可以了!把dede/templates文件夹打开,用编辑器打开article_add.html,找到
<td width=”90″>发布选项:</td>
<td> <input name=”ishtml” type=”radio” class=”np” value=”1″ checked="checked">
生成HTML
<input name=”ishtml” type=”radio” class=”np” value=”0″>
仅动态浏览</td>
修改为:
<td width=”90″>发布选项:</td>
<td> <input name=”ishtml” type=”radio” class=”np” value=”1″>
生成HTML
<input name=”ishtml” type=”radio” class=”np” value=”0″ checked="checked">
仅动态浏览</td>
刷新一下发布文章页面看看可以了不!用DW可以很直观的修改。
2.如何批量修改动态发布为静态生成,或者反过来修改。
用phpmyadmin打开dede_dede_archives 这个表
ismake这个字段就是我们要修改的对象。
运行sql语句:
UPDATE dede_archives SET ismake = ‘-1′ 修改所有文档为动态浏览
UPDATE dede_archives SET ismake = ‘1′ 修改所有文档为静态发布
这样就可以了
开源网络爬虫程序(spider)一览
[
2008/09/04 12:20 | by mlzy ]
2008/09/04 12:20 | by mlzy ]
spider是搜索引擎的必须模块.spider数据的结果直接影响到搜索引擎的评价指标.第一个spider程序由MIT的Matthew K Gray操刀该程序的目的是为了统计互联网中主机的数目。WebLech URL Spider.PySolitaire (Python Solita
spider是搜索引擎的必须模块.spider数据的结果直接影响到搜索引擎的评价指标.
第一个spider程序由MIT的Matthew K Gray操刀该程序的目的是为了统计互联网中主机的数目
Spier定义(关于Spider的定义,有广义和狭义两种).
狭义:利用标准的http协议根据超链和web文档检索的方法遍历万维网信息空间的软件程序.
广义:所有能利用http协议检索web文档的软件都称之为spider.
其中Protocol Gives Sites Way To Keep Out The ′Bots Jeremy Carl, Web Week, Volume 1, Issue 7, November 1995 是和spider息息相关的协议,大家有兴趣参考robotstxt.org.
spider是搜索引擎的必须模块.spider数据的结果直接影响到搜索引擎的评价指标.
第一个spider程序由MIT的Matthew K Gray操刀该程序的目的是为了统计互联网中主机的数目
Spier定义(关于Spider的定义,有广义和狭义两种).
狭义:利用标准的http协议根据超链和web文档检索的方法遍历万维网信息空间的软件程序.
广义:所有能利用http协议检索web文档的软件都称之为spider.
其中Protocol Gives Sites Way To Keep Out The ′Bots Jeremy Carl, Web Week, Volume 1, Issue 7, November 1995 是和spider息息相关的协议,大家有兴趣参考robotstxt.org.
给dedecms V4/5 增加自定义文件名功能
[
2008/08/31 14:30 | by mlzy ]
2008/08/31 14:30 | by mlzy ]
为了更好地实现SEO功能,为了广大的DEDE爱好者不再大伤脑筋,这两天抽了点时间把此功能弄出来跟大家分享。
以下修改能实现DEDE自定义网页文件名的功能,例如:
zi-ding-yi.html/zidingyi.html/defined-pagename.html/自定义某某某.html 等 (注意:Unix类系统不支持中文url。)
(反正你填什么就是什么,除了短横杠连词符号 -,最好别乱填其它特殊符号特别是单、双引号、空格等,以免出错)。
如果你不填自定义文件名,则默认为文章的aid,如:
138.html/65.html 等。
以下皆以文章模型为例作修改。强烈建议初学者在对文件进行修改前备份之。
以下为针对 DEDE V5 的修改:
以下修改能实现DEDE自定义网页文件名的功能,例如:
zi-ding-yi.html/zidingyi.html/defined-pagename.html/自定义某某某.html 等 (注意:Unix类系统不支持中文url。)
(反正你填什么就是什么,除了短横杠连词符号 -,最好别乱填其它特殊符号特别是单、双引号、空格等,以免出错)。
如果你不填自定义文件名,则默认为文章的aid,如:
138.html/65.html 等。
以下皆以文章模型为例作修改。强烈建议初学者在对文件进行修改前备份之。
以下为针对 DEDE V5 的修改:








