Python实战 - Django自动化创建sitemap

什么是sitemap

自建网站的朋友应该都了解过sitemap, 百度的站长平台和谷歌的Search Console都允许站长提交sitemap.xml。

那么这个文件具体有啥作用呢:就小T老师看来,最大的作用就是让搜索引擎更加友好的收录你的URL, 也就是网站链接。

如果一个网站没有sitemap,正常情况下,爬虫会从首页开始遍历提取网站链接,然后再进行抓取,这个过程一般来说会比较漫长,尤其涉及到链接的更新的时候。

对于搜索引擎来说是一个巨大的网络消耗,对于站长来说则收录会比较慢。

sitemap的出现,让网站可以更有效率的方式来提供链接给搜索引擎,省却中间环节,加量不加价:P

如何创建sitemap文件

  1. 人肉办法 这个办法比较土,也就是按照sitemap的协议,人工去修改调整sitemap文件,如果对于小型个人博客网站,考虑到更新频率一般不会特别高,省事的话也可行。

  2. 自动化办法 通过自动化脚本来生成,这个就很灵活了,可以通过各种自动化脚本,按照模板来生成,不做讨论

  3. 利用框架自动生成 框架有很多,考虑本篇主要以Python作为示例,所以选择一个Python下比较流行的Django框架作为例子来说明,直接上代码:

from django.contrib.sitemaps import views as sitemaps_views
from django.contrib.sitemaps import Sitemap

from .models import Article

class ArticleSitemap(Sitemap):
    changefreq = "monthly"
    priority = 1.0
    limit = 100
    def items(self):
        return Article.objects.all()

    def lastmod(self, obj):
        return obj.create_time


sitemaps = {
    'article': ArticleSitemap,
}


urlpatterns = [
    url(r'^sitemap\.xml$',
        sitemaps_views.index,
        {'sitemaps': sitemaps, 'sitemap_url_name': 'sitemaps'}),
    url(r'^sitemap-(?P<section>.+)\.xml$',

另外,需要在settings.py的INSTALL_APP中加上django.contrib.sitemaps

Django框架自动生成sitemap的优点

  • 可以自动化生成sitemap.xml,不用人工维护
  • 如果有新增加的内容页面,也可以自动进行sitemap.xml的更新
  • sitemap.xml自动分页,这种情况是针对链接较多的时候,单个sitemap.xml会非常巨大,可以通过分页来解决。

场景化方案建议

  • 链接数较少的网站,小于10W级别 建议使用方案3,实际使用起来,简单,方便,不用人工参与,站长只用专心维护好内容即可

  • 链接数较多的网站,大于10W级别 建议使用方案2,通过脚本产生sitemap.xml的静态文件,然后通过nginx的来代理处理。为什么要这样做,由于如果采用方案2的话,每次爬虫访问sitemap文件,由于要进行分页,会频繁的count和limit计算,对数据库产生很大的负担,导致网站的服务能力急剧下降。

部署效果

当提交sitemap后,谷歌的反应是很迅速的,立即开始抓取,百度的反应比较慢,可能还需要对网站进行观察。


相关推荐
  1. 妈妈不在我不哭
  2. 崤山大战
  3. HashMap底层结构与JVM内存模型 - 阿里技术面试
  4. Nginx Location 匹配设置
  5. 柳州市柳北区向日葵幼儿园恒兴园 - 柳州市幼儿园黄页
  6. 如何将Ubuntu配置成网关服务器使用
  7. 沧州市泊头市金螺号幼儿园 - 沧州幼儿园黄页
  8. 聪明的小猫
  9. 热情的小狗
  10. Django中如何对TemplateView进行缓存
  11. 李代桃僵的成语故事
  12. 成都市第四幼儿园 - 成都市幼儿园黄页
  13. 利用openCV的QRCodeDetector识别图片中的二维码
  14. 辰宇幼儿园 - 哈尔滨幼儿园黄页
  15. Python公开课 - 标准库queue基本使用
  16. Python公开课 - 爬虫之网页结构
  17. 魔鬼与人
  18. 南京市江宁区花港幸福城·茉莉园幼儿园 - 南京幼儿园黄页
  19. 武汉推出越王勾践剑交通卡
  20. 武汉一女子七天被骗220万
  21. 央媒聚焦!国庆假期173.78万人次打卡大美黄陂
  22. 武汉女子网上做兼职被骗六十五万
  23. Ubuntu 编译 libsodium 以支持 chacha20 加密方式
  24. 师文学琴
  25. 技术破解钉钉打卡考勤 - 上班族专用完整解决方案
  26. 宝宝是否生病了 - 隐睾
  27. 事发武汉农夫山泉矿泉水内惊现大量虫卵
  28. 孔子周游列国
  29. 易中天给英雄武汉的一首诗 - 武汉新鲜事
  30. 遵义市遵义县枫香镇枫元社区幼儿园 - 遵义市幼儿园黄页
  31. 武汉市洪山区甲铺岭幼儿园 - 武汉幼儿园黄页
  32. 奥迪客户不满加价,被武汉4S店销售群殴
  33. 小公鸡的聚宝盆
  34. 百名网媒总编辑登上知音号欣赏武汉夜色
  35. 武汉00后大二学妹拍视频月入七十万
  36. Python的应用领域与就业前景
  37. 辽宁省鞍山市腾飞双语艺术幼儿园 - 鞍山幼儿园黄页
  38. 重庆市南岸区七彩阳光幼儿园 - 重庆幼儿园黄页
  39. 董其昌遇仙
  40. 警方通报:武汉男子持刀至五死一伤,嫌犯已跳桥