利用Python3分析sitemap.xml并抓取导出全站链接详解


Posted in Python onJuly 04, 2017

前言

最近网站从HTTPS转为HTTP,更换了网址,旧网址做了301重定向,折腾有点大,于是在百度站长平台提交网址,不管是主动推送还是手动提交,前提都是要整理网站的链接,手动添加太麻烦,效率低,于是就想写个脚本直接抓取全站链接并导出,本文就和大家一起分享如何使用python3实现抓取链接导出。

利用Python3分析sitemap.xml并抓取导出全站链接详解

首先网站要有网站地图sitemap.xml文件地址,其次我这里用的是python3版本,如果你的环境是python2,需要对代码进行调整,因为python2和python3很多地方差别还是挺大的。

下面是python 3代码,将里面的链接地址换成你自己的网址即可:

#coding=utf-8
import urllib
import urllib.request import re
url='http://www.ranzhi.org/sitemap.xml'
html=urllib.request.urlopen(url).read()
html=html.decode('utf-8')
r=re.compile(r'(http://www.ranzhi.org.*?\.html)')
big=re.findall(r,html)
for i in big:
 print(i)
 op_xml_txt=open('xml.txt','a')
 op_xml_txt.write('%s\n'%i)

我们能来看一下运行结果:

利用Python3分析sitemap.xml并抓取导出全站链接详解

导出TXT格式文件后,再在百度站长平台手动提交就方便的多了。当然我们也可以使用更快的主动推送方式,因为我的网站是用PHP+mysql开发的,所以我们这里使用PHP脚本将上面抓取的链接再处理下,然后主动推送给百度,一遍加快爬虫抓取时间。

利用Python3分析sitemap.xml并抓取导出全站链接详解

上面1是你的站点的主动推送API,这个可以在百度站长平台获取;2是要主动推送的网站地址,这里就可以用到我们上面抓取的全站链接了。将链接地址整理放到该数组中,运行一下个这个PHP脚本,就可以了。一键提交,及高效便捷,又能缩短爬虫爬去时间,有助于网站页面收录。

我们在平时的SEO或服务器运维工作中,时常会将重复工作自动化,复杂工作间变化,有助于提升效率,如果大家在操作过充中有何问题可以一起分享交流讨论。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python结合opencv实现人脸检测与跟踪
Jun 08 Python
剖析Django中模版标签的解析与参数传递
Jul 21 Python
python实现的正则表达式功能入门教程【经典】
Jun 05 Python
Python内置函数—vars的具体使用方法
Dec 04 Python
django 实现编写控制登录和访问权限控制的中间件方法
Jan 15 Python
Django框架中间件定义与使用方法案例分析
Nov 28 Python
Python实现不规则图形填充的思路
Feb 02 Python
浅谈pytorch池化maxpool2D注意事项
Feb 18 Python
Django如何使用jwt获取用户信息
Apr 21 Python
解决Pymongo insert时会自动添加_id的问题
Dec 05 Python
Python数据分析库pandas高级接口dt的使用详解
Dec 11 Python
如何通过安装HomeBrew来安装Python3
Dec 23 Python
在django中使用自定义标签实现分页功能
Jul 04 #Python
详解django中自定义标签和过滤器
Jul 03 #Python
pygame实现弹力球及其变速效果
Jul 03 #Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 #Python
python中安装Scrapy模块依赖包汇总
Jul 02 #Python
Python使用filetype精确判断文件类型
Jul 02 #Python
使用python实现tcp自动重连
Jul 02 #Python
You might like
php 验证码制作(网树注释思想)
2009/07/20 PHP
php计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
php session的应用详细介绍
2017/03/22 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
JQuery SELECT单选模拟jQuery.select.js
2009/11/12 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
自制微信公众号一键排版工具
2016/09/22 Javascript
功能强大的jquery.validate表单验证插件
2016/11/07 Javascript
浅谈js中function的参数默认值
2017/02/20 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
2018/07/26 Javascript
Angular ElementRef简介及其使用
2018/10/01 Javascript
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
[59:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第二局
2016/03/04 DOTA
python 自动提交和抓取网页
2009/07/13 Python
Python生成随机数组的方法小结
2017/04/15 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
一些常用的HTML5模式(pattern) 总结
2015/07/14 HTML / CSS
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
通信工程专业毕业生推荐信
2013/12/25 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
银行员工考核评语
2014/12/31 职场文书
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle
Redis安装使用RedisJSON模块的方法
2022/03/23 Redis