Django站点地图框架中的静态页面
我对sitemap.xml的生成和Django的sitemap框架有一些疑问 比如说,我有一个博客应用程序,它有一个包含每个帖子内容的帖子详细页面和一堆“助手”页面,比如“按标签查看”、“按作者查看”等等Django站点地图框架中的静态页面,django,indexing,sitemap,Django,Indexing,Sitemap,我对sitemap.xml的生成和Django的sitemap框架有一些疑问 比如说,我有一个博客应用程序,它有一个包含每个帖子内容的帖子详细页面和一堆“助手”页面,比如“按标签查看”、“按作者查看”等等 是否必须在sitemap.xml中包含每个页面,包括“帮助者”页面?我希望所有的'助手'网页索引,因为有许多关键字和文本。我知道网站地图的设计目的是帮助索引页面,为网络爬虫提供一些指导,但不是限制爬虫。这方面的最佳做法是什么?包括所有内容还是只包括重要页面 如果可以将所有页面都放在sitema
谢谢。网站地图的使用方式由搜索引擎决定。有些人只会索引你在站点地图中的内容,而其他人则会将其作为起点,并基于交叉链接对整个站点进行爬网 至于包含未生成的页面,我们刚刚创建了django.contrib.sitemaps.Sitemap的子类,并让它读取一个每行一个URL的纯文本文件。比如:
class StaticSitemap(Sitemap):
priority = 0.8
lastmod = datetime.datetime.now()
def __init__(self, filename):
self._urls = []
try:
f = open(filename, 'rb')
except:
return
tmp = []
for x in f:
x = re.sub(r"\s*#.*$", '', x) # strip comments
if re.match('^\s*$', x):
continue # ignore blank lines
x = string.strip(x) # clean leading/trailing whitespace
x = re.sub(' ', '%20', x) # convert spaces
if not x.startswith('/'):
x = '/' + x
tmp.append(x)
f.close()
self._urls = tmp
# __init__
def items(self):
return self._urls
def location(self, obj):
return obj
您可以在主站点地图例程中使用类似以下内容调用它:
sitemap['static'] = StaticSitemap(settings.DIR_ROOT +'/sitemap.txt')
我们的sitemap.txt文件如下所示:
# One URL per line.
# All paths start from root - i.e., with a leading /
# Blank lines are OK.
/tour/
/podcast_archive/
/related_sites/
/survey/
/youtube_videos/
/teachers/
/workshops/
/workshop_listing_info/
/aboutus/
/history/
/investment/
/business/
/contact/
/privacy_policy/
/graphic_specs/
/help_desk/
我真的很抱歉花了太长时间才回复,只是完全忘记了。我真的不喜欢这个解决方案,但它是可以接受的。我自己也用过URLSolver,但它也很乱。所以我还是有点怀疑。我也不喜欢它,但当我们这样做(2007年夏天)的时候,它似乎是一个让它工作起来的快速方法。