Python3分析sitemap.xml抓取匯出全站連結

gavin_hsueh發表於2017-12-04

最近網站從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
`%i)

我們能來看一下執行結果:

匯出TXT格式檔案後,再在百度站長平臺手動提交就方便的多了。當然我們也可以使用更快的主動推送方式,因為我的然之網站是用PHP+mysql開發的,所以我們這裡使用PHP指令碼將上面抓取的連結再處理下,然後主動推送給百度,一遍加快爬蟲抓取時間。

上面1是你的站點的主動推送API,這個可以在百度站長平臺獲取;2是要主動推送的網站地址,這裡就可以用到我們上面抓取的全站連結了。將連結地址整理放到該陣列中,執行一下個這個PHP指令碼,就可以了。一鍵提交,及高效便捷,又能縮短爬蟲爬去時間,有助於網站頁面收錄。

我們在平時的SEO或伺服器運維工作中,時常會將重複工作自動化,複雜工作間變化,有助於提升效率,如果大家在操作過充中有何問題可以一起分享交流討論。

更多技術文章,歡迎關注公眾號【小薛建站】

1PY7iE8x5UdKFF.gif

相關文章