其实真的很丑,而且使用的递归的方式,所以要等所有下载完了才会显示结果。有点郁闷:更多的期待
代码:
baidublog.py: 这个在前一篇文章的基础上,修改了下一篇文章地址的查找:
def findNextBlogHtml(user,htmlContent):
htmlBlogContent = unicode(htmlContent,'gb2312','ignore').encode('utf-8','ignore')
# parser the html content
htmlsoup = BeautifulSoup(htmlBlogContent)
nextBlogUrlZero = htmlsoup.findAll("div",{"class":"opt"})
urlRe = re.compile('/.*?.html')
urls = urlRe.findall(str(nextBlogUrlZero[0]))
if(len(urls)>=1):
blogUrl = re.findall(r"\w*.html",urls[0],re.I)
if (len(blogUrl[0]) >6 ):
htmlAddr = blogUrl[0]
else:
htmlAddr ="None"
else:
htmlAddr ="None"
print htmlAddr
接下来是图形界面:
#-*- coding: utf-8 -*-
from Tkinter import *
from baidublog import *
class GridDemo( Frame ):
def __init__( self ):
Frame.__init__( self )
self.master.title( "Baidu Blog Backup" )
self.grid( sticky = W+E+N+S )
self.label1 = Label( self,text="百度用户名:",width = 5 )
self.label1.grid( row = 0, column = 1, sticky = W+E+N+S )
self.entry1 = Entry(self,width=20)
self.entry1.grid(row=0,column=2)
self.entry1.insert(INSERT, "codedeveloper")
self.label2 = Label( self,text="第一篇博文地址:",width = 8 )
self.label2.grid( row = 0, column = 3, sticky = W+E+N+S )
self.entry2 = Entry(self,width=40)
self.entry2.grid(row=0,column=4,sticky = W+E+N+S)
self.entry2.insert(INSERT, "977f3010ab7e17dcf7039e99.html")
self.text = Text(self)
self.text.grid(row =1,columnspan = 5,sticky = W+E+N+S)
self.button = Button(self,text='Backup', width = 30,command=self.startBackupBlog)
self.button.grid(row=2, columnspan =5)
def startBackupBlog(self):
user = self.entry1.get()
firstBlogUrl = self.entry2.get()
self.backupAction(user, firstBlogUrl)
def backupAction(self,user,firstBlogUrl):
#first read first blog's title and content
blogContent, blogTitle,htmlContent = getBlogContentAndTitle(user,firstBlogUrl)
#save the html to file
saveToFile(user,blogContent,blogTitle,firstBlogUrl)
self.text.insert(INSERT,str( blogTitle)+"-"+str(firstBlogUrl))
#find next url
firstBlogUrl = findNextBlogHtml(user,htmlContent)
if firstBlogUrl != "None" :
self.backupAction(user,firstBlogUrl)
#self.text.insert(INSERT, "More")
else:
self.text.insert(INSERT, "\n恭喜全部备份完毕!")
def main():
GridDemo().mainloop()
if __name__ == "__main__":
main()
个人觉得:还是先读取文章分类中所有文章链表,然后根据线程等下载方式,可以提高效率
- 大小: 57.3 KB
分享到:
相关推荐
"163博客备份软件"就是专为解决这个问题而设计的一款实用工具,它能够帮助用户方便地将163博客上的所有文章、评论等数据完整地保存到本地,以防数据丢失或需要迁移至其他平台时使用。 这款软件的主要功能包括: 1....
7. 软件选择:《豆约翰博客备份专家》20120314版本提供了简单易用的界面和强大的博客备份功能。"下载说明.txt"可能是软件的使用指南,帮助用户了解如何操作;"第七下载.url"可能是指向该软件下载地址的快捷方式,...
豆约翰博客备份专家是用法简单,功能强大的博客备份工具,博客电子书(PDF,CHM,WORD和TXT)生成工具,博文离线浏览工具,软件界面美观大方,支持多个主流博客网站(新浪微博,腾讯说说,QQ空间,新浪博客,宝宝树...
豆约翰博客备份专家是完全免费,功能强大的博客备份工具,博客电子书(PDF,CHM和TXT)生成工具,博文离线浏览工具,软件界面美观大方,支持多个主流博客网站(QQ空间,百度空间,新浪博客,网易博客,豆瓣日记,...
博客备份是每位博主都应该重视的一项工作,它可以帮助你在遭遇数据丢失、系统故障或者意外情况时,迅速恢复博客内容,确保你的创作不被轻易抹去。"万能博客备份软件"正是这样一款专为此目的设计的工具,它为用户提供...
豆约翰博客备份专家[1]是完全免费,功能强大的博客备份工具,博客电子书(PDF,CHM和TXT)生成工具,博文离线浏览工具,软件界面美观大方,支持多个主流博客网站(QQ空间,百度空间,新浪博客,网易博客,豆瓣日记,...
【标题】:“百度博客备份工具”是一款专门针对百度博客的备份解决方案,旨在帮助用户安全、高效地保存他们的博客内容,防止数据丢失。 【描述】:该工具的主要功能是将用户在百度博客上发布的文章、评论、图片等...
博客备份程序是一款专门针对个人博客数据安全而设计的工具,旨在帮助用户轻松备份他们的博客内容。这款程序支持多个主流博客平台,包括新浪博客、网易博客、QQ空间以及百度空间,确保用户在这些平台上发表的文章、...
对于没有安装防火墙的服务器,用户只需要在多备份提供的界面输入FTP或SFTP账号信息,剩下的备份工作就可以交给多备份来完成。如果服务器安装了防火墙,则推荐使用客户端模式,通过在服务器端安装一个客户端程序,来...
博客备份工具blog_backup是一款专为博客用户设计的实用软件,旨在帮助用户轻松备份自己的博客内容,确保数据安全,防止意外丢失。在原版blog_backup工具的基础上,本版本进行了针对性的修改,尤其是解决了126邮箱...
方便快捷的为您及您的朋友们的博客提供备份及搬家服务。 全新的UI界面并实现了博客增量备份、博客搬家的功能。 支持众多国内外博客服务商及各种开放API的独立博客。 希望csdn尽快发布搬家工具。
博客备份工具是一款旨在帮助用户轻松地对个人博客内容进行安全备份的软件。它的重要性在于,随着互联网信息的快速发展,个人博客成为了许多人分享观点、记录生活、积累知识的重要平台。然而,由于各种原因,如服务器...
在提供的文件列表中,`hue-4.1.0.tgz`很可能是HUE 4.1安装目录的打包文件,而`博客同款 HUE.txt`可能记录了备份过程的详细步骤或注意事项。恢复备份时,需要按照相反的顺序进行:先恢复配置文件,再恢复数据库,最后...
博客备份工具Blog_Backup是一款专为博客用户设计的实用软件,旨在帮助用户保护自己的博客内容免受意外损失。这款工具采用Python编程语言开发,适用于Windows XP SP2/2021操作系统,具备绿色免安装的特点,操作简单易...
【标题】基于 Node.js 的新浪博客备份程序 Node.js 是一个开源、跨平台的 JavaScript 运行环境,它允许开发者在服务器端运行 JavaScript 代码。这个压缩包中的项目是一个使用 Node.js 开发的新浪博客备份工具,可以...
博客备份是保护个人或组织在线内容的重要步骤,它允许用户在离线环境下查看博客内容,同时也能在需要时将整个博客迁移到其他平台。本文将详细介绍如何使用名为"blogbak.exe"的工具来实现这一目标。 一、博客备份的...
描述中提到的链接指向了一个特定的博客文章,虽然具体内容未给出,但我们可以根据常规的SVN备份实践来探讨相关知识点。 1. **SVN备份的重要性**: - 数据安全:SVN配置库包含团队的所有源代码和历史版本,丢失可能...
这类工具通常具有直观的用户界面,简化了复杂的备份流程,使得非技术用户也能轻松使用。 压缩包子文件的文件名称“install_flash_player_ax.exe”看起来像是一个安装程序,用于安装Adobe Flash Player的ActiveX版本...
标签“源码”和“工具”,提示我们这个工具可能涉及到源代码级别的操作,意味着它可能支持对各种编程语言的代码进行备份,并且是以软件工具的形式存在,用户可以通过图形界面或命令行进行操作。 压缩包子文件的文件...