Python与seo的应用,sitemap.xml文件制作工具源码
时间:2022-07-22
本文章向大家介绍Python与seo的应用,sitemap.xml文件制作工具源码,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
sitemap.xml文件是严格按照xml语言编写的网站地图,用来引导搜索蜘蛛对本站点文章等内容的索引,它是由google提出来的概念。
链接提交
使用说明
- 链接提交工具是网站主动向百度搜索推送数据的工具,本工具可缩短爬虫发现网站链接时间,网站时效性内容建议使用链接提交工具,实时向搜索推送数据。本工具可加快爬虫抓取速度,无法解决网站内容是否收录问题
- 百度搜索资源平台为站长提供链接提交通道,您可以提交想被百度收录的链接,百度搜索引擎会按照标准处理,但不保证一定能够收录您提交的链接。
xml文件格式:
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url>
<loc>http://www.zhongzemin.cn/</loc>
<lastmod>2019-04-09</lastmod>
</url>
<url>
<loc>...</loc>
<lastmod>2019-04-09</lastmod>
</url>
...
...
那么,我们应用python如何制作sitemap.xml格式文件呢?
制作思路:
第一步:爬取所有url链接
第二步:统计去重
第三步:制作xml格式文件
第四步:导出文件/保存文件
这里我测试了 set 和 list,大家可以对比参照一下!
去重是使用set()
完整源码:
#XML格式地图制作
#20200313 by 微信:huguo00289
# -*- coding: UTF-8 -*-
import requests,re,time
#获取页面上的所有链接
def get_urllist(url):
lilist=[]
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1'
}
html=requests.get(url,headers=headers).content.decode('utf-8')
ure=r'href="(.+?)"'
urllist=re.findall(ure,html,re.S)
print(len(urllist))
print(urllist)
for li in urllist:
if ".html" in li:
if "www." in li:
if "?" not in li:
print(li)
lilist.append(li)
print(len(lilist))
lilist=set(lilist) #去重,run1开启,run2不开启
print(len(lilist))
return lilist
#xml格式制作
def xmlzz(urllist):
xmlwj='<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">n'
xmlg=""
for url in urllist:
xmlgs=f'<url>n<loc>{url}</loc>n<lastmod>{time.strftime("%Y-%m-%d", time.localtime())}</lastmod>n</url>n'
xmlg="%s%s"%(xmlg,xmlgs)
#print(xmlg)
xmlwj="%s%s%s"%(xmlwj,xmlg,"</urlset>")
print(xmlwj)
return xmlwj
#保存文件
def bc(sj):
with open("sitemap.xml",'w',encoding='utf-8') as f:
f.write(sj)
print(">>>保存文件网站地图成功!")
def run1(url):
hreflist = set()
url = "https://www.pinsuoedu.com"
lilist = get_urllist(url)
for li in lilist:
lis = get_urllist(li)
hreflist = hreflist.union(lis) # 求并集
print(len(hreflist))
hreflist = hreflist.union(lilist)
print(len(hreflist))
hreflist.add(url)
print("_" * 50)
print(hreflist)
print("_" * 50)
print(len(hreflist)) #465
sj=xmlzz(hreflist)
bc(sj)
def run2(url):
hreflist =[]
lilist = get_urllist(url)
for li in lilist:
lis = get_urllist(li)
hreflist.extend(lis) # 求并集
print(len(hreflist))
hreflist.append(url)
print("_" * 50)
print(len(hreflist))
hreflist=set(hreflist)
print("_" * 50)
print(len(hreflist))
if __name__=='__main__':
url="https://www.zhongzemin.cn/"
run1(url)
- Github page搭建博客使用自定义插件的方法
- 【翻译】JavaScript中5个值得被广泛使用的数组方法
- 【翻译】浏览器渲染Rendering那些事:repaint、reflow/relayout、restyle
- Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
- 《JQuery技术内幕》读书笔记——自调用匿名函数剖析
- 【代码+论文】通过ML、Time Series模型学习股价行为
- .NET Core 系列5 :使用 Nuget打包类库
- 解决transition动画与display冲突的几种方法
- Gof设计模式之装饰者模式(七)
- JavaScript递归中的作用域问题
- constructor属性解析
- Paxos协议学习小结
- mqtt推送介绍
- JavaScript中的原型链原理
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何用ant将JSP项目打成war包
- 3分钟短文 | MySQL备份和迁移sql文件,这个指令基础又关键
- 如何用ant给Java项目生成文档
- ant build里如何指定classpath
- Tomcat服务器java.lang.IllegalArgumentException异常
- 动态控制SAP CRM附件的可编辑性
- 关于node.js:ExpressJS、Websocket中的session会话共享
- 【STM32F429开发板用户手册】第23章 STM32F429的USART串口基础知识和HAL库API
- 【STM32F407开发板用户手册】第23章 STM32F407的USART串口基础知识和HAL库API
- 小姐姐提灯给你讲讲动态规划(万字长文)
- 解决fedora启动时显示cannot open font file true的办法 By HKL,
- 盘点 6 个被淘汰的 Java 技术,它们都曾经风光过!
- Unlock a VBA password protected Excel file By HKL,
- kde安装gtk主题(kde-gtk-theme)KDE4下gtk程序美化 By HKL,
- Monkey's Audio vs. WavPack vs. FLAC By HKL,