当前位置:首页 > python代码 > 正文内容

巧用python代码生成网站sitemap地图

王铁锹7个月前 (12-02)python代码363

引言如下:

在互联网的世界里,拥有一个清晰、易于导航的网站地图(sitemap)对于网站的成功至关重要。

网站地图不仅有助于用户更好地了解网站结构,还能极大地提升搜索引擎优化(SEO)

因为它为搜索引擎爬虫提供了发现和索引页面的有效途径。

通过提供一个全面且更新及时的网站地图,我们可以确保搜索引擎能够快速找到网站上的新内容或更改过的内容,

从而提高网站在搜索结果中的可见性。

      代码特色:

          我将结合Python标准库xml.etree.ElementTree来构建XML文档,并介绍如何根据需要添加网页URL、最后修改时间、更新频率和优先级等信息。此外,我们还会简要探讨如何抓取网站内容以动态生成包含所有重要页面的网站地图,这对于大型或经常更新的网站尤为有用。

代码展示图

代码展示图

代码展示图(二)

代码展示图二

完整代码如下

import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin, urlparse
import os

class SitemapGenerator:
    def __init__(self, base_url):
        self.base_url = base_url
        self.visited_urls = set()
        self.sitemap = []

    def is_valid_url(self, url):
        parsed = urlparse(url)
        return bool(parsed.netloc) and bool(parsed.scheme)

    def get_all_links(self, url):
        try:
            response = requests.get(url)
            soup = BeautifulSoup(response.text, 'html.parser')
            for a_tag in soup.find_all("a", href=True):
                href = a_tag.attrs['href']
                full_url = urljoin(url, href)
                if self.is_valid_url(full_url) and self.base_url in full_url:
                    yield full_url
        except requests.RequestException as e:
            print(f"Error fetching {url}: {e}")

    def crawl(self, url):
        if url in self.visited_urls:
            return
        print(f"Crawling: {url}")
        self.visited_urls.add(url)
        self.sitemap.append(url)
        for link in self.get_all_links(url):
            self.crawl(link)

    def generate_sitemap(self, output_file='sitemap.txt'):
        with open(output_file, 'w') as f:
            for url in self.sitemap:
                f.write(url + '\n')
        print(f"Sitemap saved to {output_file}")

if __name__ == "__main__":
    base_url = ""  # 替换为你要爬取的网站URL
    sitemap_generator = SitemapGenerator(base_url)
    sitemap_generator.crawl(base_url)
    sitemap_generator.generate_sitemap()

     最后会生成文件至当前目录下的sitemap

扫描二维码推送至手机访问。

微信搜索关注王铁锹公众号或者搜索王秋风。

版权声明:本文由王铁锹个人发布,如需转载请注明出处。

本文链接:https://www.3ban.cn/?id=55

“巧用python代码生成网站sitemap地图” 的相关文章

python代码实现网页在线flv播放小工具

python代码实现网页在线flv播放小工具

项目介绍项目名称:python代码实现网页在线flv播放小工具简介:FlvPlayer 是一个简单的在线FLV格式视频播放器,它利用Python语言开发,旨在提供一种轻量级的方式让用户能够直接通过网络浏览器播放FLV格式的视频文件。此工具特别适合那些需要快速查看或分享FLV格式视频而不想下载专门的媒...

巧妙调用接口来判断ip地址

巧用一个使用 Python 发起 HTTPS 请求的例子,旨在获取指定 IP 地址的相关信息!请勿用于生产测试环境!import urllib.request import ssl # 定义请求的URL、方法、应用代码(API密钥)以及查询参数 host&nb...

Python脚本实现自动检测并重命名非正常图片文件

Python脚本实现自动检测并重命名非正常图片文件

概述在日常的文件管理和数据处理中,我们可能会遇到一些文件名虽然以特定扩展名结尾,但实际内容并不符合该格式的情况。例如,某些文件可能被错误地标记为 .jpg 文件,但实际上它们可能是其他类型的文件,如视频文件。这种情况下,如果我们依赖文件扩展名来处理文件,就可能导致程序出现错误或无法正确处理文件。本文...

PHP脚本获取客户端IP地址和解析设备信息

PHP脚本获取客户端IP地址和解析设备信息

在互联网应用中,了解访问者的信息对于网站分析、用户行为跟踪以及安全控制等方面非常重要。PHP是一种广泛使用的服务器端脚本语言,它提供了多种方法来收集和处理来自客户端的数据。下面的代码片段展示了两个PHP函数,它们分别用于获取客户端的IP地址和解析用户的设备信息(包括操作系统和浏览器)。获取客户端IP...

vivo云服务照片视频批量下载代码~

vivo云服务照片视频批量下载代码~

起因,想要从vivo云服务中下载历史上传四五千张照片,结果点击全选之后,居然要我一张一张下载,需要我不停的点保存,这就很抽象了,难道我想要的批量下载不应该是打包成压缩包或者直接批量下载到文件夹中嘛?这点厂商做的甚至不如云盘,细节一点也没打磨!!!第一步打开vivo云服务官网,进入主页,打开控制台进行...

PDF文件批量删除空白页(带UI界面+成品)

一个是需要选中处理的PDF路径,一个是保存的位置制作背景:由于有大量excel文件需要打印,合并了EXCEL再生成PDF查看格式是否发生变化,看到合并的pdf后一堆空白页,根本删不完,而且也在网上找方法大部分都是教怎么预览删除,于是就制作了批量删除空白页的小软件,刚好同事也需要,但是她没python...