用python寫了個程式,可以將csdn部落格的文章備份到本地,使用的時候只需要輸入
python版本為3.3.3,使用時需要安裝該版本的python直譯器。
from urllib import request
import re
import os
import time
#加上頭資訊,偽裝成瀏覽器訪問
def getcontent(url):
headers =
req=request.request(url, headers=headers)
content=request.urlopen(req).read().decode('utf-8')
return content;
def getallbloglinks(url):
"""獲得所有博文的鏈結"""
nextpageurl=url;
blogs=;
while nextpageurl!=none:
content=getcontent(nextpageurl)
blogpatternobj=re.compile(blogpattern);
tempblogs=blogpatternobj.findall(content)
blogs=blogs+tempblogs;
nextpagepatternobj=re.compile(nextpagepattern)
nextpage=nextpagepatternobj.findall(content)
if len(nextpage):
nextpageurl=nextpage[0]
nextpageurl=r""+nextpageurl;
# print(nextpageurl)
else:
nextpageurl=none
return blogs
def downloadblogs(blogs):
dir="""csdn備份"""
if not os.path.exists(dir):
os.mkdir(dir)
for blog in blogs:
time.sleep(1); #延時一秒,過快的訪問會引起502 bad gateway 錯誤
blogurl=blog[0]
blogtitle=blog[1]
blogurl=r""+blogurl
print(blogurl)
print(blogtitle)
content=getcontent(blogurl)
mainbodypattern="""[\\s\\s]*?"""
mainbodypatternobj=re.compile(mainbodypattern)
mainbody=mainbodypatternobj.findall(content);
filename=blogtitle
file=open(dir+'/'+filename+'.html', 'wb')
file.write(mainbody[0].encode('utf8')) #若使用瀏覽器檢視出現亂碼,請將瀏覽器解碼方式更改為utf8
file.close()
picturepattern="""
picturepatternobj=re.compile(picturepattern);
pictures=picturepatternobj.findall(mainbody[0])
if len(pictures)!=0:
picturedir=dir+'/'+filename;
if not os.path.exists(picturedir):
os.mkdir(picturedir)
i=0;
for pictureurl in pictures:
picturename=blogtitle+"_picture_"+str(i)
request.urlretrieve(pictureurl, picturedir+'/'+picturename)
i=i+1
#主程式
print("please type in your blog link") #輸入自己部落格首頁的位址即可
bloglink=input()
print(bloglink)
blogs=getallbloglinks(bloglink)
downloadblogs(blogs)
看看執行的效果:
自動備份Oracle資料庫 經典部落格
自動備份oracle資料庫 自動備份oracle資料庫 相信為數不少的系統管理員每天都在做著同一樣的工作 對資料進行備份。一旦哪一天疏忽了,而這一天系統又恰恰發生了故障,需要進行資料恢復,那麼此時就無能為力了。假如每天設定乙個固定的時間,系統自動進行備份,那該多好啊!下面筆者結合實踐經驗,談一談un...
mysql 自動備份許可權 Mysql 自動備份
很簡單的乙個自動備份方案 bas 件 backup.sh bin bash dbuser root dbpwd 123456 dbname jam00 delbackpath usr local mysql backup dbname date d 7 days ago y m d sql.gz r...
mysql自動備份開啟 MySQL自動備份
mysql user root 使用者名稱 mysql password password 密碼 mysql host localhost ip mysql port 3306 埠號 mysql charset utf8 編碼方式 backup db arr db name 要備份的資料庫名稱,多個...