生成網站sitemap.xml地圖教程

要生成 sitemap.xml 文件,需要通過爬蟲程序抓取網站的所有有效鏈接。以下是完整的解決方案:


步驟 1:安裝必要的 Python 庫

  • ounter(line
pip?install?requests?beautifulsoup4?lxml

步驟 2:創建 Python 爬蟲腳本 (sitemap_generator.py)

  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
import?requestsfrom?bs4?import?BeautifulSoupfrom?urllib.parse?import?urljoin,?urlparseimport?xml.etree.ElementTree?as?ETfrom?datetime?import?datetime
def?get_all_links(base_url):????#?存儲已訪問和待訪問的鏈接????visited?=?set()????queue?=?[base_url]????all_links?=?set()
????while?queue:????????url?=?queue.pop(0)????????if?url?in?visited:????????????continue
????????try:????????????headers?=?{????????????????'User-Agent':?'Mozilla/5.0?(Windows?NT?10.0;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/91.0.4472.124?Safari/537.36'????????????}????????????response?=?requests.get(url,?headers=headers,?timeout=10)????????????if?response.status_code?!=?200:????????????????continue
????????????#?添加到已訪問列表????????????visited.add(url)????????????all_links.add(url)????????????print(f"Crawled:?{url}")
????????????#?解析?HTML?獲取新鏈接????????????soup?=?BeautifulSoup(response.text,?'lxml')????????????for?link?in?soup.find_all('a',?href=True):????????????????href?=?link['href'].strip()????????????????full_url?=?urljoin(url,?href)
????????????????#?過濾無效鏈接????????????????parsed?=?urlparse(full_url)????????????????if?parsed.scheme?not?in?('http',?'https'):????????????????????continue????????????????if?not?parsed.netloc.endswith('91kaiye.cn'):??#?僅限本站鏈接????????????????????continue????????????????if?'#'?in?full_url:??#?忽略錨點????????????????????full_url?=?full_url.split('#')[0]
????????????????#?添加到待訪問隊列????????????????if?full_url?not?in?visited:????????????????????queue.append(full_url)
????????except?Exception?as?e:????????????print(f"Error?crawling?{url}:?{str(e)}")
????return?all_links
def?create_sitemap(links,?filename='sitemap.xml'):????root?=?ET.Element('urlset',?xmlns='http://www.sitemaps.org/schemas/sitemap/0.9')????????for?link?in?sorted(links):????????url_elem?=?ET.SubElement(root,?'url')????????ET.SubElement(url_elem,?'loc').text?=?link????????ET.SubElement(url_elem,?'lastmod').text?=?datetime.now().strftime('%Y-%m-%d')????????ET.SubElement(url_elem,?'changefreq').text?=?'daily'????????ET.SubElement(url_elem,?'priority').text?=?'0.8'????????tree?=?ET.ElementTree(root)????tree.write(filename,?encoding='utf-8',?xml_declaration=True)????print(f"\nSitemap?generated:?{filename}?with?{len(links)}?URLs")
if?__name__?==?'__main__':????base_url?=?'https://www.91kaiye.cn/'????print("Starting?crawl...")????links?=?get_all_links(base_url)????create_sitemap(links)

步驟 3:運行腳本

  • ounter(line
python?sitemap_generator.py

執行說明:

  1. 爬蟲邏輯

    • 從首頁 https://www.91kaiye.cn/ 開始廣度優先搜索

    • 自動過濾非本站鏈接、錨點和無效 URL

    • 記錄每個頁面的最后修改日期(默認當天)

    • 設置更新頻率為 daily,優先級為 0.8

  2. 輸出文件

    • 生成的 sitemap.xml 格式如下:
      • ounter(line
      • ounter(line
      • ounter(line
      • ounter(line
      • ounter(line
      • ounter(line
      • ounter(line
      • ounter(line
      • ounter(line
      • ounter(line
      <?xml?version='1.0'?encoding='utf-8'?><urlset?xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">??<url>????<loc>https://www.91kaiye.cn/page1</loc>????<lastmod>2023-10-05</lastmod>????<changefreq>daily</changefreq>????<priority>0.8</priority>??</url>??...</urlset>

注意事項:

  1. 反爬措施

    • 如果網站有反爬機制,可能需要:
      • 添加 time.sleep(1) 延遲請求

      • 使用代理 IP

      • 設置更真實的請求頭

  2. 動態內容

    • 對于 JavaScript 渲染的頁面(如 Vue/React),需改用 SeleniumPlaywright

  3. 優化建議

    • 在服務器上定期運行(如每周一次)

    • 提交到 Google Search Console

    • robots.txt 中添加:
      • ounter(line
      Sitemap:?https://www.91kaiye.cn/sitemap.xml

替代方案:使用在線工具

如果不想運行代碼,可用在線服務生成:

  1. XML-Sitemaps.com

  2. Screaming Frog SEO Spider(桌面工具)


生成后請將 sitemap.xml 上傳到網站根目錄,并通過百度/Google站長工具提交。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917810.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917810.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917810.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

idea拉取新項目第一次啟動報內存溢出(java.lang.OutOfMemoryError: Java heap space)

背景&#xff1a; 新拉取一個項目后&#xff0c;第一次啟動的時候報錯內存溢出&#xff1a; Java 堆內存溢出 (java.lang.OutOfMemoryError: Java heap space) 這個錯誤表示你的 Java 應用程序需要的內存超過了 JVM 堆內存的分配上限。 解決方案 1.增加堆內存大小 啟動應用時添…

安卓雷電模擬器安裝frida調試

1.在模擬器中設置調試root和adb 2.在vscode中安裝autox.js 3.在github上下載auto.js組件 新地址鏈接看來大佬的項目也經歷了波折https://blog.csdn.net/weixin_41961749/article/details/145669531 github地址https://github.com/aiselp/AutoX/releases 將下載的apk放入雷電…

Godot ------ 初級人物血條制作02

Godot ------ 初級人物血條制作02引言正文血條動態顯示引言 在 Godot ------ 初級人物血條制作01 一文中我們介紹了如何構建一個初級血條&#xff0c;但是我們并沒有涉及如何動態顯示血條。本文我們將介紹如何動態顯示血條。 正文 血條動態顯示 首先&#xff0c;我們為當前…

(Python)待辦事項升級網頁版(html)(Python項目)

源代碼&#xff1a; app.py from flask import Flask, render_template, request, redirect, url_for, jsonify import json import osapp Flask(__name__)# 數據存儲文件 DATA_FILE "todos.json"def load_todos():"""從文件加載待辦事項"&q…

智慧養老破局:科技如何讓“老有所養”變成“老有優養”?

隨著人口老齡化加劇&#xff0c;“養老”成了社會關注的焦點。傳統養老往往停留在“有地方住、有人照顧”的基礎需求&#xff0c;而智慧養老則通過科技與人文的結合&#xff0c;讓老年人的生活從“老有所養”升級到“老有優養”。不僅活得安心&#xff0c;更能活得有尊嚴、有質…

自學嵌入式 day45 ARM體系架構

一、SOCRAM&#xff1a;隨機訪問存儲器&#xff0c;存放隨機變量&#xff0c;掉電數據丟失ROM&#xff1a;只讀存儲器&#xff0c;存放單片機的程序、指令&#xff0c;掉電數據不丟失注&#xff1a;1、馮諾依曼架構中將數據與指令存放在同一存儲器中2、哈佛架構是將數據與指令存…

HTML應用指南:利用GET請求獲取全國OPPO官方授權體驗店門店位置信息

本篇文章將利用GET請求從OPPO官方網站或公開接口中獲取官方授權體驗店的分布信息&#xff0c;并通過Python編程語言中的requests庫來實現HTTP請求&#xff0c;從而提取詳細的門店位置數據。隨著OPPO品牌的發展和市場布局的擴展&#xff0c;其官方授權體驗店已經遍布全國各大城市…

Self-RAG:基于自我反思的檢索增強生成框架技術解析

本文由「大千AI助手」原創發布&#xff0c;專注用真話講AI&#xff0c;回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我&#xff0c;一起撕掉過度包裝&#xff0c;學習真實的AI技術&#xff01; 一、核心定義與原始論文 Self-RAG&#xff08;Self-Reflective Retri…

【YOLOv8改進 - C2f融合】C2f融合DBlock(Decoder Block):解碼器塊,去模糊和提升圖像清晰度

YOLOv8目標檢測創新改進與實戰案例專欄 專欄目錄: YOLOv8有效改進系列及項目實戰目錄 包含卷積,主干 注意力,檢測頭等創新機制 以及 各種目標檢測分割項目實戰案例 專欄鏈接: YOLOv8基礎解析+創新改進+實戰案例 文章目錄 YOLOv8目標檢測創新改進與實戰案例專欄 介紹 摘要 文…

LLamafactory是什么?

LLamaFactory是一個專注于大型語言模型&#xff08;LLM&#xff09;訓練、微調和部署的開源工具平臺&#xff0c;旨在簡化大模型的應用開發流程。?1.核心功能與特點?LlamaFactory&#xff08;全稱Large Language Model Factory&#xff09;作為一站式AI開發工具平臺&#xff…

Element Plus編輯表格時的頁面回顯(scope)

1、前提&#xff1a;自定義列模版(把id作為參數&#xff0c;傳遞到調用的edit函數里)<template #default"scope"><el-button type"primary" size"small" click"edit(scope.row.id)"><el-icon><EditPen /><…

河南萌新聯賽2025第四場-河南大學

今天又是坐牢的一次比賽&#xff0c;恭喜獲得本次比賽稱號&#xff1a;掛機王&#xff0c;一個簽到題能卡住兩個小時&#xff0c;這兩個小時簡直坐的我懷疑人生&#xff0c;實在是找不出哪里錯了&#xff0c;后來快結束的時候才發現少了一個等于號&#xff0c;也不至于連簽到題…

【Excel】通過Index函數向下拖動單元格并【重復引用/循環引用】數據源

文章目錄CASE1: 列數據源&#xff0c;向下拖動&#xff0c;每個單元重復N次步驟1&#xff1a;基本的INDEX函數步驟2&#xff1a;添加行號計算步驟3&#xff1a;添加絕對引用以便拖動CASE2:列數據源&#xff0c;向下拖動&#xff0c;每個單元重復1次&#xff0c;周而復始步驟1&a…

潛行者2:切爾諾貝利之心 全DLC 送修改器(S2HOC)免安裝中文版

網盤鏈接&#xff1a; 潛行者2&#xff1a;切爾諾貝利之心 免安裝中文版 名稱&#xff1a;潛行者2&#xff1a;切爾諾貝利之心 全DLC 送修改器&#xff08;S2HOC&#xff09;免安裝中文版 描述&#xff1a; 探索傳奇的《潛行者》世界&#xff0c;同時體驗&#xff1a; 融合…

系統運維之LiveCD詳解

基本概念LiveCD是一個包含完整可運行操作系統的光盤映像&#xff0c;能夠在不影響主機系統的情況下啟動計算機。工作原理系統從LiveCD介質啟動 將必要文件加載到內存中運行 通常使用RAM磁盤作為臨時文件系統 關機后所有更改默認不保存&#xff08;除非特別配置&#xff0…

達夢分布式集群DPC_分布式任務執行拆分流程_yxy

達夢分布式集群DPC_分布式執行計劃執行拆分流程 1 DPC任務拆分原理 1.1 分布式架構思想 1.2 DPC如何實現任務拆分? 2 DPC任務拆分完整示例 2.1 單表查詢 2.1.1 創建分區表,存儲在不同BP上 2.1.2 生成sql的最佳執行計劃 2.1.3 代碼生成并執行、拆分 2.1.3.1 任務拆分步驟 2.1.…

怎么免費建立自己的網站步驟

以下是免費建立個人網站的詳細步驟&#xff0c;結合多種方案和工具推薦&#xff1a; 一、零基礎快速建站方案 ?選擇免費建站平臺? PageAdmin CMS?&#xff1a; 1、提供開源模板&#xff0c;模板可以自定義界面和風格&#xff0c;同時支持原創設計和定制。 2、后臺支持自定義…

使用ASIWebPageRequest庫編寫Objective-C下載器程序

全文目錄&#xff1a;開篇語前言為什么選擇ASIWebPageRequest&#xff1f;安裝ASIWebPageRequest庫編寫下載器程序1. 導入必要的庫2. 創建下載任務3. 設置下載保存路徑4. 發起下載請求5. 更新下載進度6. 處理下載完成7. 處理下載失敗完整代碼示例8. 運行程序總結文末開篇語 哈嘍…

mathtype加載項搞崩了word(上)

一、Mathtype更新后word異常 在mathtype更新后&#xff0c;打開word文件時一直報宏的錯&#xff1a; 點擊“取消”&#xff1a; 點擊“確定”&#xff1a; 點擊“確定”&#xff1a; 點擊“確定”&#xff1a; 還有一堆小彈窗&#xff0c;最后還是能打開word文件&#xff1a; …