|
1. 手动编写简单的 XML Sitemap[color=var(--md-box-samantha-normal-text-color) !important]如果你的网站页面数量较少,且结构简单,那么可以手动编写 XML Sitemap。XML Sitemap 是一种遵循特定格式的 XML 文件,搜索引擎能够借助它了解网站的页面结构。
[color=var(--md-box-samantha-normal-text-color) !important]以下是一个简单的 XML Sitemap 示例:
[backcolor=var(--chat-bg-color,#fff)][color=var(--code-header-icon-color)][color=var(--code-header-text-color)]xml
[color=var(--code-header-icon-color)]
[color=var(--code-doc_v3)]<?xml version="1.0" encoding="UTF-8"?>[color=var(--code-variable_v3)]<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> [color=var(--code-variable_v3)]<url> [color=var(--code-variable_v3)]<loc>https://www.example.com/[color=var(--code-variable_v3)]</loc> [color=var(--code-variable_v3)]<lastmod>2025-04-19[color=var(--code-variable_v3)]</lastmod> [color=var(--code-variable_v3)]<changefreq>daily[color=var(--code-variable_v3)]</changefreq> [color=var(--code-variable_v3)]<priority>1.0[color=var(--code-variable_v3)]</priority> [color=var(--code-variable_v3)]</url> [color=var(--code-variable_v3)]<url> [color=var(--code-variable_v3)]<loc>https://www.example.com/page1[color=var(--code-variable_v3)]</loc> [color=var(--code-variable_v3)]<lastmod>2025-04-18[color=var(--code-variable_v3)]</lastmod> [color=var(--code-variable_v3)]<changefreq>weekly[color=var(--code-variable_v3)]</changefreq> [color=var(--code-variable_v3)]<priority>0.8[color=var(--code-variable_v3)]</priority> [color=var(--code-variable_v3)]</url>[color=var(--code-variable_v3)]</urlset>
[backcolor=var(--canvas-color-bg-2)]
[backcolor=var(--s-color-border-tertiary,#00000014)]
[color=var(--s-color-text-primary,#000)][color=var(--s-color-text-secondary,#ffffffcc)]
解释:- <urlset>:此为根标签,表明这是一个 Sitemap 文件。
- <url>:代表网站中的一个页面。
- <loc>:页面的 URL。
- <lastmod>:页面的最后修改日期。
- <changefreq>:页面的更新频率,可取值为always、hourly、daily、weekly、monthly、yearly、never。
- <priority>:页面的优先级,取值范围是 0.0 - 1.0。
2. 使用 Python 脚本生成 XML Sitemap[color=var(--md-box-samantha-normal-text-color) !important]若你的网站页面数量较多,手动编写 Sitemap 会很耗时,此时可以使用 Python 脚本自动生成。
[backcolor=var(--chat-bg-color,#fff)][color=var(--code-header-icon-color)][color=var(--code-header-text-color)]python
[color=var(--code-header-icon-color)]
import requestsfrom bs4 import BeautifulSoupimport xml[color=var(--code-text_v3)].etree[color=var(--code-text_v3)].ElementTree as ETfrom datetime import datetimedef [color=var(--code-function_v3)]get_all_links[color=var(--code-text_v3)](url[color=var(--code-text_v3)])[color=var(--code-text_v3)]: try[color=var(--code-text_v3)]: response [color=var(--code-variable_v3) !important]= requests[color=var(--code-text_v3)].get[color=var(--code-text_v3)](url[color=var(--code-text_v3)]) response[color=var(--code-text_v3)].raise_for_status[color=var(--code-text_v3)]([color=var(--code-text_v3)]) soup [color=var(--code-variable_v3) !important]= BeautifulSoup[color=var(--code-text_v3)](response[color=var(--code-text_v3)].text[color=var(--code-text_v3)], [color=var(--code-parameter_v3)]'html.parser'[color=var(--code-text_v3)]) links [color=var(--code-variable_v3) !important]= [color=var(--code-text_v3)][ for link in soup[color=var(--code-text_v3)].find_all[color=var(--code-text_v3)]([color=var(--code-parameter_v3)]'a'[color=var(--code-text_v3)])[color=var(--code-text_v3)]: href [color=var(--code-variable_v3) !important]= link[color=var(--code-text_v3)].get[color=var(--code-text_v3)]([color=var(--code-parameter_v3)]'href'[color=var(--code-text_v3)]) if href and href[color=var(--code-text_v3)].startswith[color=var(--code-text_v3)]([color=var(--code-parameter_v3)]'http'[color=var(--code-text_v3)])[color=var(--code-text_v3)]: links[color=var(--code-text_v3)].append[color=var(--code-text_v3)](href[color=var(--code-text_v3)]) return links except requests[color=var(--code-text_v3)].RequestException as e[color=var(--code-text_v3)]: print[color=var(--code-text_v3)](f"Error fetching {url}: {e}"[color=var(--code-text_v3)]) return [color=var(--code-text_v3)][def [color=var(--code-function_v3)]generate_sitemap[color=var(--code-text_v3)](urls[color=var(--code-text_v3)])[color=var(--code-text_v3)]: urlset [color=var(--code-variable_v3) !important]= ET[color=var(--code-text_v3)].Element[color=var(--code-text_v3)]([color=var(--code-parameter_v3)]'urlset'[color=var(--code-text_v3)], xmlns[color=var(--code-variable_v3) !important]=[color=var(--code-parameter_v3)]"http://www.sitemaps.org/schemas/sitemap/0.9"[color=var(--code-text_v3)]) for url in urls[color=var(--code-text_v3)]: url_element [color=var(--code-variable_v3) !important]= ET[color=var(--code-text_v3)].SubElement[color=var(--code-text_v3)](urlset[color=var(--code-text_v3)], [color=var(--code-parameter_v3)]'url'[color=var(--code-text_v3)]) loc [color=var(--code-variable_v3) !important]= ET[color=var(--code-text_v3)].SubElement[color=var(--code-text_v3)](url_element[color=var(--code-text_v3)], [color=var(--code-parameter_v3)]'loc'[color=var(--code-text_v3)]) loc[color=var(--code-text_v3)].text [color=var(--code-variable_v3) !important]= url lastmod [color=var(--code-variable_v3) !important]= ET[color=var(--code-text_v3)].SubElement[color=var(--code-text_v3)](url_element[color=var(--code-text_v3)], [color=var(--code-parameter_v3)]'lastmod'[color=var(--code-text_v3)]) lastmod[color=var(--code-text_v3)].text [color=var(--code-variable_v3) !important]= datetime[color=var(--code-text_v3)].now[color=var(--code-text_v3)]([color=var(--code-text_v3)])[color=var(--code-text_v3)].strftime[color=var(--code-text_v3)]([color=var(--code-parameter_v3)]'%Y-%m-%d'[color=var(--code-text_v3)]) changefreq [color=var(--code-variable_v3) !important]= ET[color=var(--code-text_v3)].SubElement[color=var(--code-text_v3)](url_element[color=var(--code-text_v3)], [color=var(--code-parameter_v3)]'changefreq'[color=var(--code-text_v3)]) changefreq[color=var(--code-text_v3)].text [color=var(--code-variable_v3) !important]= [color=var(--code-parameter_v3)]'weekly' priority [color=var(--code-variable_v3) !important]= ET[color=var(--code-text_v3)].SubElement[color=var(--code-text_v3)](url_element[color=var(--code-text_v3)], [color=var(--code-parameter_v3)]'priority'[color=var(--code-text_v3)]) priority[color=var(--code-text_v3)].text [color=var(--code-variable_v3) !important]= [color=var(--code-parameter_v3)]'0.8' tree [color=var(--code-variable_v3) !important]= ET[color=var(--code-text_v3)].ElementTree[color=var(--code-text_v3)](urlset[color=var(--code-text_v3)]) tree[color=var(--code-text_v3)].write[color=var(--code-text_v3)]([color=var(--code-parameter_v3)]'sitemap.xml'[color=var(--code-text_v3)], encoding[color=var(--code-variable_v3) !important]=[color=var(--code-parameter_v3)]'utf-8'[color=var(--code-text_v3)], xml_declaration[color=var(--code-variable_v3) !important]=[color=var(--code-number_v3)]True[color=var(--code-text_v3)])if __name__ [color=var(--code-variable_v3) !important]== [color=var(--code-parameter_v3)]"__main__"[color=var(--code-text_v3)]: base_url [color=var(--code-variable_v3) !important]= [color=var(--code-parameter_v3)]'https://www.example.com' all_links [color=var(--code-variable_v3) !important]= get_all_links[color=var(--code-text_v3)](base_url[color=var(--code-text_v3)]) generate_sitemap[color=var(--code-text_v3)](all_links[color=var(--code-text_v3)])
解释:- get_all_links函数:借助requests和BeautifulSoup库获取网站上的所有链接。
- generate_sitemap函数:利用xml.etree.ElementTree库生成 XML Sitemap 文件。
3. 使用第三方工具生成 Sitemap[color=var(--md-box-samantha-normal-text-color) !important]市面上有许多第三方工具可以帮助你生成 Sitemap,例如:
- ** Screaming Frog SEO Spider**:这是一款功能强大的 SEO 工具,能够抓取网站并生成 Sitemap。
- [color=var(--md-box-samantha-deep-text-color) !important]XML - [color=var(--color-accent-fg)]Sitemaps.com:在线工具,你只需输入网站 URL,它就会自动生成 Sitemap。
|
|