- 浏览: 423939 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
iwwenbo:
别逗好不好
Popup.js 弹出窗口 -
bugnuke:
尼玛 跑不了。。。
Popup.js 弹出窗口 -
tangzhifei:
创建Subversion授权文件放哪目录下?前面我的都对了,到 ...
Trac系列(8):windows下Apache+SVN+Trac安装及配置(一) -
zoutuo1986:
正在安装,确实很慢,一定要选择网速快的时候安装,
eclipse 插件springide安装 -
johnsonyang:
this.jmsTemplate.send(
...
spring,weblogic配置jms
最近接触动态网站推广问题,查阅资料后发现:难!搜索引擎的蜘蛛爬虫(robot)MS主要通过目录浏览方式进行搜集,而动态网站页面很少,绝大部分都是动态生成的,要被搜索引擎收录比较困难。目前大致以下几种方式进行推广:一是在各大搜索引擎提交自己的网站;二是通过各种大大小小的分类目录;三是做链接交换和邮件推广;四是自己生成网站地图和robot文件(还有其它很多五花八门的手段),本文要描述的是第四种方式。
第一个是动态网站的各个链接生成网站地图(据报道google,microsoft和yahoo联合声明一个统一的标准sitemap 0.9,事实上目前只有google一家可以提交网站地图, 参见:http://www.google.com/support/webmasters/bin/answer.py?answer=40318&hl=zh_CN),站点地图范本如下:
<?xml version="1.0" encoding="UTF-8"?>
< urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
< url>
< loc>http://www.example.com/</loc>
< lastmod>2005-01-01</lastmod>
< changefreq>monthly</changefreq>
< priority>0.8</priority>
</url>
</urlset>
我的做法是用一张表记录点击的链接,再写一个页面来生成网站地图(存储地图文件的目录需要目录写授权)文件Sitemap.xml,代码如下:
* 生成网站地图Sitemap.xml
* sid:网站代码
*/
private void CreateXMLFile(string sid)
...{
SqlParameter param1 = new SqlParameter("@SID", SqlDbType.VarChar, 20);
param1.Value = sid;
IDataParameter[] parameters = new IDataParameter[] ...{ param1 };
DbHelperSQL dbHelper = new DbHelperSQL(connStr);
string outParams = "";
DataSet ds = dbHelper.RunProcedure("spGetSiteMap", parameters, "TmpSiteMapInfo", ref outParams);
if (ds.Tables[0].Rows.Count > 0)
...{
string XMLSpace = "http://www.google.com/schemas/sitemap/0.9";
DateTime dt = System.DateTime.Now;
XmlText xmltext;
XmlElement xmlelem;
// Create a new, empty document.
XmlDocument doc = new XmlDocument();
XmlDeclaration docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
doc.AppendChild(docNode);
// Create and insert a new element.
XmlNode urlset = doc.CreateNode(XmlNodeType.Element, "urlset", XMLSpace);
doc.AppendChild(urlset);
foreach (DataRow dr in ds.Tables[0].Rows)
...{
// Create a nested element (with an attribute).
XmlElement url = doc.CreateElement("", "url", XMLSpace);
urlset.AppendChild(url);
xmlelem = doc.CreateElement("", "loc", XMLSpace);
xmltext = doc.CreateTextNode(dr["URL"].ToString());
xmlelem.AppendChild(xmltext);
url.AppendChild(xmlelem);
xmlelem = doc.CreateElement("", "lastmod", XMLSpace);
xmltext = doc.CreateTextNode(string.Format("{0:u}", dt).Substring(0,10));
xmlelem.AppendChild(xmltext);
url.AppendChild(xmlelem);
xmlelem = doc.CreateElement("", "changefreq", XMLSpace);
if (dr["Type"].ToString() == "1")
xmltext = doc.CreateTextNode("daily");
else
xmltext = doc.CreateTextNode("monthly");
xmlelem.AppendChild(xmltext);
url.AppendChild(xmlelem);
xmlelem = doc.CreateElement("", "priority", XMLSpace);
xmltext = doc.CreateTextNode(dr["OrderNo"].ToString());
xmlelem.AppendChild(xmltext);
url.AppendChild(xmlelem);
}
doc.Save(Server.MapPath("Sitemap.xml"));
}
return;
}
上面的代码比较简单,一个要点是如果上面结点(比如:urlset)带有命名空间,则下层结点也一定要带,否则下层结点会自动带一个空的命名空间(好像与习惯思维相反,这点花了偶不少时间)。
第二个是robots(爬虫用的配置文件),也有相关标准,网上资料很多,下面是我写的生成robots文件的代码:
...{
SqlParameter param1 = new SqlParameter("@SID", SqlDbType.VarChar, 20);
param1.Value = sid;
IDataParameter[] parameters = new IDataParameter[] ...{ param1 };
DbHelperSQL dbHelper = new DbHelperSQL(connStr);
string outParams = "";
DataSet ds = dbHelper.RunProcedure("spGetSiteMap", parameters, "TmpSiteMapInfo", ref outParams);
if (ds.Tables[0].Rows.Count > 0)
...{
FileStream fs = new FileStream(Server.MapPath("robots.txt"), FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.Flush();
// 使用StreamWriter来往文件中写入内容
m_streamWriter.BaseStream.Seek(0, SeekOrigin.Begin);
// 把richTextBox1中的内容写入文件
m_streamWriter.WriteLine("# Robots.txt file from http://www.hugesoft.net");
m_streamWriter.WriteLine("# All robots will spider the domain");
m_streamWriter.WriteLine("");
m_streamWriter.WriteLine("Sitemap: http://www.hugesoft.net/Sitemap.xml");
m_streamWriter.WriteLine("User-agent: *");
m_streamWriter.WriteLine("Disallow: ");
foreach (DataRow dr in ds.Tables[0].Rows)
...{
string str = dr["URL"].ToString().ToLower();
int index = str.IndexOf("http://");
if (index < 0)
continue;
index = str.IndexOf("/",index + 7);
if (index < 0)
continue;
str = str.Substring(index);
m_streamWriter.WriteLine("Allow: " + str);
}
//关闭此文件
m_streamWriter.Flush();
m_streamWriter.Close();
}
}
发表评论
-
maven(二)
2010-04-22 10:49 1774依赖管理¶ 这里我们通过使用外部依赖(external ... -
maven(一)
2010-04-22 10:47 1365概述¶ Maven 最初的目 ... -
软件公司良好制度积累
2008-09-18 21:30 1115软件公司良好制度积累(待完善):订报刊杂志员工生日发放读书卡工 ... -
10技巧创建软件开发文档
2008-09-18 21:29 1530虽然编制文档并不是众多IT专业人员选择职业的真正原因,但是足够 ... -
<<人月神话>>笔记
2008-09-18 21:27 1111人月神话 : 1)如果 ... -
前期架构设计太重要了
2008-09-18 21:26 1098公司接了个大项目,前期几乎没有任何架构设计,到了后期,代码混乱 ... -
10个方法提高你的编程生产力
2008-09-18 21:25 1086我在google工作过,现在有了自己的公司,多年的程序员工作经 ... -
写出高质量软件的75条体会
2008-09-18 21:23 1067如何用正确的方法写 ... -
为何国外程序员比国内的更职业
2008-09-18 21:21 938有人问我,在目前这个 ... -
软件架构师:走钢索的人
2008-09-18 17:51 1076架构师是个很神圣的词。盖茨,世界首富。微软 ,世界最大最富有 ... -
用Blog和Wiki搭建IT团队的知识库
2008-09-09 18:10 4655最近团队一直讨论web2.0对企业网升级改造的影响,大家更多的 ... -
把小软件当作大软件来写,把大软件当作小软件来做
2008-09-09 14:33 964我最初也是从写小的程 ... -
大项目与小项目区别
2008-09-08 09:30 1525在工作之前接触的大多是小项目,而工作之后接触的都是十几万行以上 ... -
理想的设计师和项目经理
2008-09-05 17:20 1014理想的项目经理 优秀的项目经理与设计师之间的关系非常类似他们与 ...
相关推荐
《一种基于Linux平台的搜索引擎初探》这篇文章主要探讨了如何在Linux操作系统上构建搜索引擎,并解析了其实现机制和过程。搜索引擎在互联网时代扮演着至关重要的角色,它通过收集、分类和检索网络信息,帮助用户快速...
【传媒-“chatGPT+搜索引擎”模式初探】 随着科技巨头微软的创新举措,"ChatGPT+搜索引擎"的新型搜索模式正在重塑互联网信息获取的方式。2023年2月8日,微软推出了new Bing,这标志着一个新时代的到来,谷歌、百度...
举例来说,如果分别在Google通用搜索引擎和Google Scholar中输入关键词“茶多酚”,前者可能会返回超过一百万条结果,这些结果大多来源于商业网站,侧重于产品推广和科普介绍;而后者则会返回约十二万条结果,这些...
这个压缩包文件"分子构型优化初探.rar"显然聚焦于这个主题,通过使用Python编程语言进行量化计算,并且结合了可视化技术来展示结果。下面我们将深入探讨相关知识点。 首先,我们关注"凸优化理论"。在数学和计算机...
银行服务流程优化初探.doc
微软率先开启“ChatGPT+搜索引擎”的模式,关注后续迭代及商业化 2023 年 2 月 8 日,微软宣布推出 new Bing,开启 ChatGPT+搜索模式,谷 歌、百度、Opera 等纷纷跟进。该模式相对于传统搜索,主要优势在于通过 整合...
本文探讨了传媒行业中“ChatGPT+搜索引擎”新模式的发展,以微软的新Bing搜索引擎为例,展示了人工智能技术如何改变搜索引擎的功能和用户体验。ChatGPT是一种基于Transformer架构的自然语言处理工具,能够通过大量的...
中国物流企业的流程优化初探.doc
基于Oracle 11g表性能优化初探.pdf
### 银行服务流程优化初探 #### 摘要 随着银行服务模式由传统的核算交易主导型向营销服务主导型转变,银行网点作为银行服务的重要窗口面临着日益严峻的竞争环境和服务挑战。为了应对这些挑战并提升自身的市场竞争力...
【银行服务流程优化初探】 银行网点作为银行业务的核心渠道,其服务质量直接影响着客户满意度和银行的竞争力。当前,银行网点面临着识别引导不足、客户营销力度不够、业务处理效率低和服务流程单一等问题。为应对...
基于Oracle数据库的数据存取性能优化初探.pdf
139-159-生态城区绿色交通评价指标的发展与优化初探-word资料.pdf
基层央行信息基础架构优化初探 一、基层央行信息基础架构新变化 随着总行两级数据中心建设深入开展以及基层央行科技服务基础设施逐步升级,基层央行信息基础架构开始出现新变化。当前,基层央行按照既定工作要求并...
5. **更新与优化**:搜索引擎需要处理实时的数据更新,同时也要考虑性能优化,比如批量索引、缓存策略以及近实时搜索等。 6. **搜索结果展示**:除了返回匹配的文档,还需要考虑如何以用户友好的方式展示结果,包括...