• 推荐几个Google Sitemap工具


    在线版的Google sitemap文件生成器 
     

        而xml-sitemaps这个网站正是提供这样的服务,一个在线版的Google sitemap文件生成器,不过由于免费版的,所以最大只能索引500个页面,对于大型网站来说,这是远远不够的。如果你需要无限制版本,那么就需要支付14.99美元。

    链接:http://www.xml-sitemaps.com

    SiteMapBuilder.Net

    SiteMapBuilder是Microsoft Visual Studio 2005 (简体中文版)的一个免费插件程序,用来自动生成站点地图文件Web.sitemap。

    具体功能:
    1、可以自动为解决方案中的每个Web项目,根据目录结构生成一个Web.sitemap文件。
    2、以"APP_"、 "BIN"开头的目录中的文件不会添加到Web.sitemap文件中。
    3、只有扩展名为"ASPX"、"HTML"和"HTM"的文件才会添加到站点地图文件中。
    4、如果项目中已有Web.sitemap文件,SiteMapBuilder自动生成的SiteMapBuilder文件可以保留原来的设置。

    SiteMapBuilder.Net v1.5  在此下载
    运行这个工具前,请确保您的电脑已经装好Microsoft .NET Framework。不然将无法使用。点击下载.Net Framework>>

    Gsitemap

    Gsitemap 让你可以创建一个可以被用于你的 Google 网站地图说明来改善你的网站索引的 Google 网站地图.该软件可以抓取你的整个网站通过使用过滤器排除某些部分,验证链接并且还可以使用一个内置的 FTP 客户端上传你完成的网站地图.其它的功能包括 Gzip 压缩,最新修改的默认值,改变频率和优先权,以及载入 XML 网站地图配置文件的功能

    下载:天空软件下载

    Gsitemap 0.97a绿色版

    Google SiteMap文件生成工具 V1.0

    程序需要.net1.1支持。本程序主要是将站点下的文件列举出来,并按照Google的标准,生成供Google搜索使用的SiteMap.xml文件,这样可以使Google能够更准确的对你的网站做Deep Search。

    尽管Google也提供了用于生成SiteMap.xml文件的工具,但脚本必须运行在服务端,且受到语言环境的限制。对于一些如虚拟主机的用户可能无法实现。本程序通过在本地计算机上进行文件扫描的方式来列举出站点的所有文件,并生成XML文档。

    使用说明:
    你只需要填写站点在本机的目录和站点地址,设置权重、更新频率,或者只对某些文件类型进行扫描,设置完后,点击扫描,最后导出即可。

    如你的站点为http://test.com/,该站点的文件在你本机上为c:webtest目录下,程序通过扫描webtest目录(包括子目录)下的文件来生成,如c:webtestindex.html,则变为http://test.com/index.html

    下载地址:硅谷动力

    ASP代码版Sitemap生成器


    <% 
    Server.ScriptTimeout=50000 
    ' sitemap_gen.asp 
    ' A simple script to automatically produce sitemaps for a webserver‚ in the Google Sitemap Protocol (GSP) 
    ' by Francesco Passantino 
    ' www.iteam5.net/francesco/sitemap 
    ' v0.2 released 5 june 2005 (Listing a directory tree recursively improvement) 

    ' BSD 2.0 license‚ 
    ' http://www.opensource.org/licenses/bsd-license.php 
    ' 收集整理: 重庆森林@im286.com 
    ' 部分修改:    独人向晚


    session("server")="http://www.coosuo.com" '你的域名 
    vDir = "/" '制作SiteMap的目录‚相对目录(相对于根目录而言)


    set objfso = CreateObject("Scripting.FileSystemObject") 
    root = Server.MapPath(vDir)

    'response.ContentType = "text/xml" 
    'response.write "<?xml version='1.0' encoding='UTF-8'?>" 
    'response.write "<urlset xmlns='http://www.google.com/schemas/sitemap/0.84'>"

    str = "<?xml version='1.0' encoding='UTF-8'?>" & vbcrlf 
    str = str & "<urlset xmlns='http://www.google.com/schemas/sitemap/0.84'>" & vbcrlf

    Set objFolder = objFSO.GetFolder(root) 
    'response.write getfilelink(objFolder.Path‚objFolder.dateLastModified) 
    Set colFiles = objFolder.Files 
    For Each objFile In colFiles 
    'response.write getfilelink(objFile.Path‚objfile.dateLastModified) 
    str = str & getfilelink(objFile.Path‚objfile.dateLastModified) & vbcrlf 
    Next 
    ShowSubFolders(objFolder)

    'response.write "</urlset>" 
    str = str & "</urlset>" & vbcrlf 
    set fso = nothing

    Set objStream = Server.CreateObject("ADODB.Stream") 
    With objStream 
    '.Type = adTypeText 
    '.Mode = adModeReadWrite 
    .Open 
    .Charset = "utf-8" 
    .Position = objStream.Size 
    .WriteText=str 
    .SaveToFile server.mappath("/sitemap.xml")‚2 '生成的XML文件名 
    .Close 
    End With

    Set objStream = Nothing 
    If Not Err Then 
    Response.Write("<script>alert('成功生成站点地图!');history.back();</script>") 
    Response.End 
    End If

    Sub ShowSubFolders(objFolder) 
    Set colFolders = objFolder.SubFolders 
    For Each objSubFolder In colFolders 
    if folderpermission(objSubFolder.Path) then 
    'response.write getfilelink(objSubFolder.Path‚objSubFolder.dateLastModified) 
    str = str & getfilelink(objSubFolder.Path‚objSubFolder.dateLastModified) & vbcrlf 
    Set colFiles = objSubFolder.Files 
    For Each objFile In colFiles 
    'response.write getfilelink(objFile.Path‚objFile.dateLastModified) 
    str = str & getfilelink(objFile.Path‚objFile.dateLastModified) & vbcrlf 
    Next 
    ShowSubFolders(objSubFolder) 
    end if 
    Next 
    End Sub


    Function getfilelink(file‚datafile) 
    file=replace(file‚root‚""‚1‚-1‚1) 
    file=replace(file‚"/"‚"/") 
    If FileExtensionIsBad(file) then Exit Function 
    if month(datafile)<10 then filedatem="0" 
    if day(datafile)<10 then filedated="0" 
    filedate=year(datafile)&"-"&filedatem&month(datafile)&"-"&filedated&day(datafile) 
    getfilelink = "<url><loc>"&server.htmlencode(session("server")&file)&"</loc><lastmod>"&filedate&"</lastmod><changefreq>daily</changefreq><priority>1.0</priority></url>" 
    Response.Flush 
    End Function


    Function Folderpermission(pathName)

    '需要过滤的目录(不列在SiteMap里面) 
    PathExclusion=Array("/blog"‚"/temp"‚"/_vti_cnf"‚"_vti_pvt"‚"_vti_log"‚"cgi-bin"‚"/admin"‚"/edu") 
    Folderpermission =True 
    for each PathExcluded in PathExclusion 
    if instr(ucase(pathName)‚ucase(PathExcluded))>0 then 
    Folderpermission = False 
    exit for 
    end if 
    next 
    End Function


    Function FileExtensionIsBad(sFileName) 
    Dim sFileExtension‚ bFileExtensionIsValid‚ sFileExt 
    'modify for your file extension (http://www.googleguide.com/file_type.html) 
    Extensions = Array("asp"‚"png"‚"jpeg"‚"zip"‚"pdf"‚"ps"‚"html"‚"htm"‚"php"‚"wk1"‚"wk2"‚"wk3"‚"wk4"‚"wk5"‚"wki"‚"wks"‚"wku"‚"lwp"‚"mw"‚"xls"‚"ppt"‚"doc"‚"wks"‚"wps"‚"wdb"‚"wri"‚"rtf"‚"ans"‚"txt")
    '设置列表的文件名‚扩展名不在其中的话SiteMap则不会收录该扩展名的文件

    if len(trim(sFileName)) = 0 then 
    FileExtensionIsBad = true 
    Exit Function 
    end if

    sFileExtension = right(sFileName‚ len(sFileName) - instrrev(sFileName‚ ".")) 
    bFileExtensionIsValid = false 'assume extension is bad 
    for each sFileExt in extensions 
    if ucase(sFileExt) = ucase(sFileExtension) then 
    bFileExtensionIsValid = True 
    exit for 
    end if 
    next 
    FileExtensionIsBad = not bFileExtensionIsValid 
    End Function 
    %>

    PHP代码版Sitemap生成器

    程序代码

    <?php 
    header('Content-type: application/xml; charset="GB2312"'‚true); 
    ?> 
    <!-- 
    @author Tobias Kluge‚ enarion.net 
    @version 0.2‚ 2005-06-05 17:40 PT 
    @status working 
    @update Aditya Naik‚ so1o@so1o.net 
    @Licence: LGPL

    editor: MildSeven@im286.com

    --> 
    <?php 
    $website = "http://my.xxxxx.com"; /* change this */ 
    $page_root = "/usr/local/psa/home/vhosts/subdomains/my/httpdocs"; /* change this */

    /* maybe change this: */ 
    $changefreq = "weekly"; //"always"‚ "hourly"‚ "daily"‚ "weekly"‚ "monthly"‚ "yearly" and "never". 
    $priority = 0.8; 
    /* this sets the last modification date of all pages to the current date */ 
    $last_modification = date("Y-m-d/TH:i:s") . substr(date("O")‚0‚3) . ":" . substr(date("O")‚3);

    /* list of allowed directories */ 
    $allow_dir[] = "web";

    /* list of disallowed directories */ 
    $disallow_dir[] = "admin"; 
    $disallow_dir[] = "_notes";

    /* list of disallowed file types */ 
    $disallow_file[] = ".inc"; 
    $disallow_file[] = ".old"; 
    $disallow_file[] = ".save"; 
    $disallow_file[] = ".txt"; 
    $disallow_file[] = ".js"; 
    $disallow_file[] = "~"; 
    $disallow_file[] = ".LCK"; 
    $disallow_file[] = ".zip"; 
    $disallow_file[] = ".ZIP"; 
    $disallow_file[] = ".CSV"; 
    $disallow_file[] = ".csv"; 
    $disallow_file[] = ".css"; 
    $disallow_file[] = ".class"; 
    $disallow_file[] = ".jar"; 
    $disallow_file[] = ".mno"; 
    $disallow_file[] = ".bak"; 
    $disallow_file[] = ".lck"; 
    $disallow_file[] = ".BAK";

    /* simple compare function: equals */ 
    function ar_contains($key‚ $array) { 
    foreach ($array as $val) { 
    if ($key == $val) { 
    return true; 


    return false; 
    }

    /* better compare function: contains */ 
    function fl_contains($key‚ $array) { 
    foreach ($array as $val) { 
    $pos = strpos($key‚ $val); 
    if ($pos === FALSE) continue; 
    return true; 
    }

    return false; 
    }

    /* this function changes a substring($old_offset) of each array element to $offset */ 
    function changeOffset($array‚ $old_offset‚ $offset) { 
    $res = array(); 
    foreach ($array as $val) { 
    $res[] = str_replace($old_offset‚ $offset‚ $val); 

    return $res; 
    }

    /* this walks recursivly through all directories starting at page_root and 
    adds all files that fits the filter criterias */ 
    // taken from Lasse Dalegaard‚ http://php.net/opendir 
    function getFiles($directory‚ $directory_orig = ""‚ $directory_offset="") { 
    global $disallow_dir‚ $disallow_file‚ $allow_dir;

    if ($directory_orig == "") $directory_orig = $directory;

    if($dir = opendir($directory)) { 
    // Create an array for all files found 
    $tmp = Array();

    // Add the files 
    while($file = readdir($dir)) { 
    // Make sure the file exists 
    if($file != "." && $file != ".." && $file[0] != '.' ) { 
    // If it's a directiry‚ list all files within it 
    //echo "point1<br>"; 
    if(is_dir($directory . "/" . $file)) { 
    //echo "point2<br>"; 
    $disallowed_abs = fl_contains($directory."/".$file‚ $disallow_dir); // handle directories with pathes 
    $disallowed = ar_contains($file‚ $disallow_dir); // handle directories only without pathes 
    $allowed_abs = fl_contains($directory."/".$file‚ $allow_dir); 
    $allowed = ar_contains($file‚ $allow_dir); 
    if ($disallowed || $disallowed_abs) continue; 
    if ($allowed_abs || $allowed){ 
    $tmp2 = changeOffset(getFiles($directory . "/" . $file‚ $directory_orig‚ $directory_offset)‚ $directory_orig‚ $directory_offset); 
    if(is_array($tmp2)) { 
    $tmp = array_merge($tmp‚ $tmp2); 


    } else { // files 
    if (fl_contains($file‚ $disallow_file)) continue; 
    array_push($tmp‚ str_replace($directory_orig‚ $directory_offset‚ $directory."/".$file)); 


    }

    // Finish off the function 
    closedir($dir); 
    return $tmp; 

    }

    $a = getFiles($page_root);


    echo '<?xml version="1.0" encoding="UTF-8"?>'; 
    ?>

    <urlset xmlns="http://www.google.com/schemas/sitemap/0.84"> 
    <? 
    foreach ($a as $file) { 
    ?> 
    <url> 
    <loc><? echo utf8_encode($website.$file); ?></loc> 
    <lastmod><? echo utf8_encode(date("Y-m-d/TH:i:s"‚ filectime($page_root.$file)). substr(date("O")‚0‚3) . ":" . substr(date("O")‚3));?></lastmod> 
    <changefreq><? echo utf8_encode($changefreq); ?></changefreq> 
    <priority><? echo utf8_encode($priority); ?></priority> 
    </url> 
    <? 

    ?> 
    </urlset>

    参数说明: 
    $website--你的域名 
    $page_root--你的站点的绝对路径 
    $changefreq--更新时间单位 "always"(始终)‚ "hourly"(小时)‚ "daily"(天)‚ "weekly"(星期)‚ "monthly"(月)‚ "yearly" "never"(从不) 
    $priority--更新频率 
    $allow_dir--允许列表的目录 
    $disallow_dir--禁止列表的目录 
    $disallow_file--禁止列表的文件类型

    制作过程说明: 
      将以上代码复制到本地存为sitemap.asp或sitemap.php,上传到你的服务器网站的根目录下,运行一下就可以在你指定的目录中(建议最好是指定为根目录)自动生成一个sitemap.xml文件了。最后进入google提交页面:https://www.google.com/webmasters/sitemaps/login,有gmail的可以用gmail直接登录。登录后把生成的xml文件地址按步骤提交就可以了。注:你的网站如果增加了新的页面,可以在增加完后再运行一下sitemap.asp或sitemap.php,并再重新提交一下sitemap.xml文件,这样就可以保证sitemap.xml文件的不断更新了!

    相关网址: 
    Google SiteMap官方生成器及其说明:http://sourceforge.net/project/showfiles.php?group_id=137793&package_id=153422 
    Google 的相关探索与研究:http://www.netbei.com/Article/zz/zz6/google/Index.html 
    一种手动制作分析制作SiteMap方法:http://blog.blogchina.com/hooligan/3609116.html 
    另一个PHP版的sitemap生成程序: 
    点击下载 
    运行界面: 
    ================================================================== 
    自动生成符合GOOGLE要求的网站地图文件 
    Copyright Top flood 
    原作者 : 
    Kloh : TimeSplitters' Games; ImmortalPC :Immortal-PC

    Laozei汉化整理 - IP查询、手机地理位置查询、身份证查询

    注: 
    1.请把本程序放入网站根目录执行 
    2.程序执行前请修改如下参数(或常量)以符合你网站要求: 
    LIMITLIENPARFICHIER 
    LIMITLIENINDEXE 
    $ExtensionsAutorises 
    $DossiersInterdits 
    $FichiersInterdits 
    3.程序将把列表写入多个xml文件(如果你网页比较多的话) 
    4.sitemap(x).xml文件将写入根目录 
    URL列表(将写入sitemap)中。。。 
    ./feed.php 
    ./index.php 
    ./error.php 
    ./guestbook.php 
    ./read.php 
    ./tag.php 
    ./tb.php 
    ./view.php 
    ./visit.php 
    9 行网址将被写入sitemap文件. 
    sitemap.xml文件生成完毕... 
    生成文件 sitemap.xml 
    全部生成完毕

  • 相关阅读:
    python操作redis之hash操作
    mongodb数据库分片实现链接
    python连接redis数据库的两种方式
    python操作rabbitmq实现消息过滤接收
    python操作rabbitmq实现广播效果
    关于java和python同时使用rabbitmq时队列同名问题的探讨
    java操作rabbitmq实现简单的消息发送(socket编程的升级)
    python使用rabbitmq实现简单的消息转发
    optiongroup标签选项组
    day05_日常SQL练习(一)
  • 原文地址:https://www.cnblogs.com/huangjihua/p/4125197.html
Copyright © 2020-2023  润新知