备份blog程序

前些年头的blog被和谐后,一直觉得备份博客文章到本地还是相当有必要的。最近看python,此语言给人一种powerful 的感觉。于是兴头之下便来了几句。此代码只是针对csdn博客。方法有点呆板。其实最好是有1个可变的可迭代集合来存放url,python里有人写了优先队列,这是以后要改进的,现在先放一个朴素版本。另外一个用rss来获取url的,但是rss只是收录了更新的博客,老的没有,不知道什么原因,在这就不贴了。

  1. importurllib2,sys,re,os
  2. defsavefile(filename,content,method='wb'):
  3. op=open(filename,method)
  4. op.write(content)
  5. op.close()
  6. return1
  7. defSaveUrl(url):
  8. globalurls
  9. urls[url]=1
  10. c=urllib2.urlopen(url)
  11. content=c.read()
  12. iflen(url.split('/'))>5:
  13. dirs=("%s/backup/%s/%s"%('.',url.split('/')[-4],url.split('/')[-3]))
  14. ifnotos.path.exists(dirs):
  15. os.makedirs(dirs)
  16. savefile("%s/%s"%(dirs,url.split('/')[-1].replace('aspx','html')),content)
  17. print'saveurl',url
  18. urlres=re.compile("http:\/\/blog.csdn.net\/lwj1396\/archive\/[^\">\s\']+aspx")
  19. needtoaddurls=urlres.findall(content)
  20. foriteminneedtoaddurls:
  21. ifitemnotinurls.keys():
  22. urls.setdefault(item,0)
  23. print'add',url
  24. defBackup():
  25. globalurls
  26. i=10000
  27. whilei>0:
  28. forurlinurls:
  29. ifurls[url]==0:
  30. SaveUrl(url)
  31. break
  32. i=i-1
  33. if__name__=='__main__':
  34. urls={}
  35. urls.setdefault(r'http://blog.csdn.net/lwj1396',0)
  36. Backup()



你可能感兴趣的:(c,.net,python,Blog,OS)