'''
Created on Apr 23, 2010
@author: Leyond
'''
import urllib
from BeautifulSoup import BeautifulSoup
import re
def saveToFile(dir, htmlContent, title,url=""):
nFail = 0
dir +="/%s" % (url)
#print dir
while nFail < 1:
try:
myfile = open(dir, 'w')
myfile.write("<html><head><title>"+str(title)+"</title></head><body>"+str(htmlContent)+"</body></html>")
myfile.close()
return
except:
nFail += 1
print "%s download Fail." % (title)
def findNextBlogHtml(user,htmlContent):
urls = re.findall(r"var.*pre.*?/blog/item/.*?html",htmlContent,re.I)
if(len(urls)==1):
blogUrl = re.findall(r"/blog/item/\w*.html",urls[0],re.I)
print blogUrl[0]
if(len(blogUrl[0])>17):
htmlAddr = blogUrl[0][11:]
#print htmlAddr
else:
htmlAddr ="None"
else:
htmlAddr ="None"
return htmlAddr
def getBlogContentAndTitle(user,htmlUrl):
blogUrl="http://hi.baidu.com/" + user+"/blog/item/"+htmlUrl
sock = urllib.urlopen(blogUrl)
blogHtmlContent = sock.read()
sock.close()
htmlContent = unicode(blogHtmlContent,'gb2312','ignore').encode('utf-8','ignore')
# parser the html content
htmlsoup = BeautifulSoup(htmlContent)
blogContentBlock = htmlsoup.findAll("div",{"id":"m_blog"})
blogContentBlockZero = blogContentBlock[0].findAll("table",{"style":"table-layout:fixed;width:100%"})
#get the title
blogTitleZero = blogContentBlock[0].findAll("div",{"class":"tit"})
blogTitle = blogTitleZero[0].string
#get blog publish date
blogPublishDate = blogContentBlock[0].findAll("div",{"class":"date"})
blogDate = blogPublishDate[0].string
blogData =str("<B>"+blogDate+"</B>") + str(blogContentBlockZero[0])
return blogData,blogTitle,htmlContent
def backUpBlog(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)
#find next url
firstBlogUrl = findNextBlogHtml(user,htmlContent)
if firstBlogUrl != "None" :
backUpBlog(user,firstBlogUrl)
else:
print "Backup Finished"
backUpBlog(user="wbweast",firstBlogUrl= "235bf024035c721b8b82a1c6.html")
使用方法跟第一篇相同:
用之前,需要在文件所在目录新建一个目录,例如我的博客就是
codedeveloper,使用这段程序,需要更改两个参数:
其中user那里指的是你的用户名,firstBlogUrl说的是你最
新那篇博文的地址~
有个问题:如何支持中文目录呢?
分享到:
相关推荐
Python交换机自动备份脚本是一种高效管理网络设备的方法,它能帮助网络管理员便捷地备份多个交换机的配置,包括华为、思科、华三和Aruba等不同品牌的设备。这样的脚本大大提高了工作效率,减少了手动操作的繁琐和...
本文将深入探讨如何使用Python来实现数据版本备份与回滚源代码,结合UDP和TCP传输协议,同时也会提及提供的文档和演示视频。 首先,让我们了解一下Python在数据备份中的应用。Python以其简洁的语法和丰富的库支持,...
1. Python语言:Python是一种高级编程语言,以其简洁的语法和丰富的库资源而闻名。在备份MySQL数据库时,Python可以编写脚本来自动化这个过程。 2. MySQL数据库:MySQL是一款流行的开源关系型数据库管理系统,广泛...
基于python的百度网盘批量转存工具.zip基于python的百度网盘批量转存工具.zip基于python的百度网盘批量转存工具.zip基于python的百度网盘批量转存工具.zip基于python的百度网盘批量转存工具.zip基于python的百度网盘...
【标题】"基于Python的百度云网盘爬虫"是一个项目,旨在教用户如何使用Python编程语言编写程序来抓取并下载百度云网盘上的公开资源。该项目涵盖了网络爬虫技术,结合了百度云盘的API接口,以及可能涉及的前端和后端...
总的来说,这个Python脚本提供了一个自动化备份解决方案,它不仅执行全量备份,还能根据`oplog`实现增量备份,大大减少了备份所需的时间和存储空间。这对于大型数据库和高并发环境来说尤其重要,因为它允许在不影响...
python 教程百度云在此,请点击以下链 接: 千锋 Python 基础教程:http://pan.baidu.com/s/1qYTZiNE Python 课程教学高手晋级视频总目录: http://pan.baidu.com/s/1hrXwY8k Python 课程 windows 知识点:...
在Python编程环境中,与PostgreSQL(简称psql)数据库交互是一项常见的任务,特别是在需要定期备份和恢复数据的情况下。本文将详细介绍两种使用Python实现psql数据库备份和还原的方法,旨在为初学者提供清晰的指导。...
python百度网盘纯代码分片上传目录文件 不依赖第三方, AppKey等信息需要自己去申请。然后获取code码就可以一直使用。
1. **字典**:Python 3.5 对字典的实现进行了改进,提高了其性能,尤其是在处理大量键值对时。 2. **列表推导式**:列表推导式的性能也得到了提升,使得在创建列表时更加高效。 3. **内存管理**:对于内存管理进行了...
python Windows 压缩备份文件(支持多文件夹)
7. **定时任务**: 为了实现定期备份,我们可以使用Python的`schedule`库或者其他定时任务工具如`APScheduler`,设置脚本在特定时间自动运行,从而实现数据的持续备份。 8. 版本控制:文件名`JimSunJing-douban_...
1. FTP通信:Python提供了ftplib库来实现FTP通信。我们需要创建一个FTP对象,连接到交换机的FTP服务器,然后登录(通常使用交换机的用户名和密码)。接着,使用`ftp.retrbinary()`方法下载配置文件到本地。 2. 配置...
本篇将详细解释如何使用Python编写一个定时备份MySQL数据库的脚本,以及如何通过代码实现仅保留最新几个备份文件的功能。 首先,我们需要了解Python中的两个关键库:`pymysql` 和 `schedule`。`pymysql` 是Python...
在windows环境下通过Python对重要的文件进行备份,备份的文件将打包为zip格式。由于windows环境下不提供标准的zip命令进行打包,因此要通过GnuWin32安装zip命令,并将C:\Program Files (x86)\GnuWin32\bin添加到系统...
python 爬取百度搜索结果,及安全验证问题
Python Cookbook 第3版 中文版 Python Cookbook 第3版 中文版
Python地理空间分析指南 第2版 pdf文档
本教程将详细介绍如何使用Python的BeautifulSoup和urllib2库来爬取百度百科的页面内容。 首先,`urllib2`是Python标准库中的一个模块,用于处理URL相关的任务,包括打开网络连接、发送HTTP请求等。在爬虫中,我们...
FTP(File Transfer Protocol)是互联网上用于文件传输的标准协议,而利用Python实现FTP下载备份功能可以帮助我们自动化地从远程服务器获取数据,确保数据的安全与可访问性。本教程将详细介绍如何使用Python来实现这...