'''
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等不同品牌的设备。这样的脚本大大提高了工作效率,减少了手动操作的繁琐和...
全书共分为10章,分别介绍了Python与地理空间分析、地理空间数据、地理空间技术、Python的地理空间分析工具、Python与地理信息系统、Python与遥感、Python与高程数据、Python与地理空间高级建模、实时数据、综合应用...
本示例涉及的主题是使用Python来自动备份MySQL数据库,并且定期清理过期的备份文件,以保持存储空间的有效利用。下面将详细介绍这个过程以及相关的知识点。 首先,我们需要了解Python在数据库操作中的角色。Python...
本文将深入探讨如何使用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写的,用于实现redis配置的自动备份。
【标题】"基于Python的百度云网盘爬虫"是一个项目,旨在教用户如何使用Python编程语言编写程序来抓取并下载百度云网盘上的公开资源。该项目涵盖了网络爬虫技术,结合了百度云盘的API接口,以及可能涉及的前端和后端...
1. **Python定时器**: Python中有多种方式可以实现定时任务,例如`time`模块的`sleep()`函数,但更常用的是`schedule`库或`APScheduler`库。这两个库提供了更加灵活和强大的定时任务管理功能。 - **schedule库*...
总的来说,这个Python脚本提供了一个自动化备份解决方案,它不仅执行全量备份,还能根据`oplog`实现增量备份,大大减少了备份所需的时间和存储空间。这对于大型数据库和高并发环境来说尤其重要,因为它允许在不影响...
python 教程百度云在此,请点击以下链 接: 千锋 Python 基础教程:http://pan.baidu.com/s/1qYTZiNE Python 课程教学高手晋级视频总目录: http://pan.baidu.com/s/1hrXwY8k Python 课程 windows 知识点:...
1. **字典**:Python 3.5 对字典的实现进行了改进,提高了其性能,尤其是在处理大量键值对时。 2. **列表推导式**:列表推导式的性能也得到了提升,使得在创建列表时更加高效。 3. **内存管理**:对于内存管理进行了...
1. FTP通信:Python提供了ftplib库来实现FTP通信。我们需要创建一个FTP对象,连接到交换机的FTP服务器,然后登录(通常使用交换机的用户名和密码)。接着,使用`ftp.retrbinary()`方法下载配置文件到本地。 2. 配置...
7. **定时任务**: 为了实现定期备份,我们可以使用Python的`schedule`库或者其他定时任务工具如`APScheduler`,设置脚本在特定时间自动运行,从而实现数据的持续备份。 8. 版本控制:文件名`JimSunJing-douban_...
本篇将详细解释如何使用Python编写一个定时备份MySQL数据库的脚本,以及如何通过代码实现仅保留最新几个备份文件的功能。 首先,我们需要了解Python中的两个关键库:`pymysql` 和 `schedule`。`pymysql` 是Python...
python爬取百度图片 使用任意关键字 python爬取百度图片 使用任意关键字 python爬取百度图片 使用任意关键字 python爬取百度图片 使用任意关键字 python爬取百度图片 使用任意关键字 python爬取百度图片
Python地理空间分析指南 第2版 pdf文档
python 爬取百度搜索结果,及安全验证问题
FTP(File Transfer Protocol)是互联网上用于文件传输的标准协议,而利用Python实现FTP下载备份功能可以帮助我们自动化地从远程服务器获取数据,确保数据的安全与可访问性。本教程将详细介绍如何使用Python来实现这...
慕课python百度百科爬取1000个页面 里面分为五个python代码文件,从spider入口程序到爬取功能界面,所有代码已经运行通过,均可行