利用Python3分析sitemap.xml并抓取导出全站链接详解
前言
最近网站从HTTPS转为HTTP,更换了网址,旧网址做了301重定向,折腾有点大,于是在百度站长平台提交网址,不管是主动推送还是手动提交,前提都是要整理网站的链接,手动添加太麻烦,效率低,于是就想写个脚本直接抓取全站链接并导出,本文就和大家一起分享如何使用python3实现抓取链接导出。
首先网站要有网站地图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)
我们能来看一下运行结果:
导出TXT格式文件后,再在百度站长平台手动提交就方便的多了。当然我们也可以使用更快的主动推送方式,因为我的网站是用PHP+mysql开发的,所以我们这里使用PHP脚本将上面抓取的链接再处理下,然后主动推送给百度,一遍加快爬虫抓取时间。
上面1是你的站点的主动推送API,这个可以在百度站长平台获取;2是要主动推送的网站地址,这里就可以用到我们上面抓取的全站链接了。将链接地址整理放到该数组中,运行一下个这个PHP脚本,就可以了。一键提交,及高效便捷,又能缩短爬虫爬去时间,有助于网站页面收录。
我们在平时的SEO或服务器运维工作中,时常会将重复工作自动化,复杂工作间变化,有助于提升效率,如果大家在操作过充中有何问题可以一起分享交流讨论。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
Python3实现抓取javascript动态生成的html网页功能示例
本文实例讲述了Python3实现抓取javascript动态生成的html网页功能.分享给大家供大家参考,具体如下: 用urllib等抓取网页,只能读取网页的静态源文件,而抓不到由javascript生成的内容. 究其原因,是因为urllib是瞬时抓取,它不会等javascript的加载延迟,所以页面中由javascript生成的内容,urllib读取不到. 那由javascript生成的内容就真的没有办法读取了吗?非也! 这里要介绍一个python库:selenium,本文使用的版本是 2.4
-
python3实现抓取网页资源的 N 种方法
这两天学习了python3实现抓取网页资源的方法,发现了很多种方法,所以,今天添加一点小笔记. 1.最简单 import urllib.request response = urllib.request.urlopen('http://python.org/') html = response.read() 2.使用 Request import urllib.request req = urllib.request.Request('http://python.org/') response
-
Python3使用requests包抓取并保存网页源码的方法
本文实例讲述了Python3使用requests包抓取并保存网页源码的方法.分享给大家供大家参考,具体如下: 使用Python 3的requests模块抓取网页源码并保存到文件示例: import requests html = requests.get("http://www.baidu.com") with open('test.txt','w',encoding='utf-8') as f: f.write(html.text) 这是一个基本的文件保存操作,但这里有几个值得注意的
-
在Python3中使用asyncio库进行快速数据抓取的教程
web数据抓取是一个经常在python的讨论中出现的主题.有很多方法可以用来进行web数据抓取,然而其中好像并没有一个最好的办法.有一些如scrapy这样十分成熟的框架,更多的则是像mechanize这样的轻量级库.DIY自己的解决方案同样十分流行:你可以使用requests.beautifulsoup或者pyquery来实现. 方法如此多样的原因在于,数据"抓取"实际上包括很多问题:你不需要使用相同的工具从成千上万的页面中抓取数据,同时使一些Web工作流自动化(例如填一些表单然后取回
-
Python使用lxml模块和Requests模块抓取HTML页面的教程
Web抓取 Web站点使用HTML描述,这意味着每个web页面是一个结构化的文档.有时从中 获取数据同时保持它的结构是有用的.web站点不总是以容易处理的格式, 如 csv 或者 json 提供它们的数据. 这正是web抓取出场的时机.Web抓取是使用计算机程序将web页面数据进行收集 并整理成所需格式,同时保存其结构的实践. lxml和Requests lxml(http://lxml.de/)是一个优美的扩展库,用来快速解析XML以及HTML文档 即使所处理的标签非常混乱.我们也将使用 Re
-
python3抓取中文网页的方法
本文实例讲述了python3抓取中文网页的方法.分享给大家供大家参考.具体如下: #! /usr/bin/python3.2 import sys import urllib.request req = urllib.request.Request('http://www.baidu.com') response = urllib.request.urlopen(req) the_page = response.read() type = sys.getfilesystemencoding()
-
python抓取并保存html页面时乱码问题的解决方法
本文实例讲述了python抓取并保存html页面时乱码问题的解决方法.分享给大家供大家参考,具体如下: 在用Python抓取html页面并保存的时候,经常出现抓取下来的网页内容是乱码的问题.出现该问题的原因一方面是自己的代码中编码设置有问题,另一方面是在编码设置正确的情况下,网页的实际编码和标示的编码不符合造成的.html页面标示的编码在这里: 复制代码 代码如下: <meta http-equiv="Content-Type" content="text/html;
-
使用Python3编写抓取网页和只抓网页图片的脚本
最基本的抓取网页内容的代码实现: #!/usr/bin/env python from urllib import urlretrieve def firstNonBlank(lines): for eachLine in lines: if not eachLine.strip(): continue else: return eachLine def firstLast(webpage): f = open(webpage) lines = f.readlines() f.close() p
-
Python使用urllib2模块抓取HTML页面资源的实例分享
先把要抓取的网络地址列在单独的list文件中 http://www.jb51.net/article/83440.html http://www.jb51.net/article/83437.html http://www.jb51.net/article/83430.html http://www.jb51.net/article/83449.html 然后我们来看程序操作,代码如下: #!/usr/bin/python import os import sys import urllib2
-
用Python程序抓取网页的HTML信息的一个小实例
抓取网页数据的思路有好多种,一般有:直接代码请求http.模拟浏览器请求数据(通常需要登录验证).控制浏览器实现数据抓取等.这篇不考虑复杂情况,放一个读取简单网页数据的小例子: 目标数据 将ittf网站上这个页面上所有这些选手的超链接保存下来. 数据请求 真的很喜欢符合人类思维的库,比如requests,如果是要直接拿网页文本,一句话搞定: doc = requests.get(url).text 解析html获得数据 以beautifulsoup为例,包含获取标签.链接,以及根据html层次结
-
详解python3百度指数抓取实例
百度指数抓取,再用图像识别得到指数 前言: 土福曾说,百度指数很难抓,在淘宝上面是20块1个关键字: 哥那么叼的人怎么会被他吓到,于是乎花了零零碎碎加起来大约2天半搞定,在此鄙视一下土福 安装的库很多: 谷歌图像识别tesseract-ocr pip3 install pillow pip3 install pyocr selenium2.45 Chrome47.0.2526.106 m or Firebox32.0.1 chromedriver.exe 图像识别验证码请参考:http://ww
随机推荐
- ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
- 详解在AngularJS的controller外部直接获取$scope
- python进阶教程之循环对象
- 服务器共享文件夹设置软件、文件共享服务器软件和共享文件夹加密工具的选择
- IIS服务器中 ASP.NET State Service 开启后 Session 仍容易丢失的问题终极解决办法
- 浅析Ajax的 原理及优缺点
- JavaScript 通过Ajax 动态加载CheckBox复选框
- php表单习惯用的正则表达式
- php通过递归方式复制目录和子目录的方法
- PHP实现的统计数据功能详解
- Android开发中遇到端口号占用问题解决方法
- Python中数字以及算数运算符的相关使用
- 实例讲解Python编程中@property装饰器的用法
- MySQL中开启和使用通用查询日志的实例教程
- PHP 5.5 创建和验证哈希最简单的方法详解
- JavaScript通过RegExp实现客户端验证处理程序
- win2000下jsp平台搭建的简单过程
- Django中几种重定向方法
- mysql 事务处理及表锁定深入简析
- Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)