下载cnblogs所有博客内容
2013-06-09 17:11
155 查看
写了一个python脚本,简单粗暴
View Code
import urllib,os,sys def getUrlContent(url): fp =urllib.urlopen(url) cont =fp.read() fp.close() return cont # to read blog urls in one page class findBlog: def __init__(self,cont): self.p=0 self.cont =cont def get(self): p1 =self.cont.find('<div class="post">',self.p) if p1>0: p2 =self.cont.find('<h2><a id="homepage1_HomePageDays',p1) if p2>0: p3 =self.cont.find('href="',p2) if p3>0: p4 =self.cont.find('">',p3) if p4>0: url =self.cont[(p3+len('href="')):p4] p5 =self.cont.find('</a>',p4) if p5>0: title =self.cont[(p4+len('">')):p5] self.p =p5 return [url, title] return None def logFile(fname, cont): if os.path.isfile(fname): print fname, 'esist!' # return fp=open(fname,'w') fp.write(cont) fp.close() def appendFile(fname, cont): fp=open(fname,'a') fp.write(cont) fp.close() def MyCmd(x): print x os.system(x) #to read all blog contents in all pages class blogReader: def __init__(self): self.is_latest_written =0 self.latest_url ='' #update self.latest_url fname ='cfg.txt' if os.path.isfile(fname): fp =open(fname,'r') self.latest_url =fp.readline().strip() fp.close() print 'latest_url', self.latest_url def readPage(self,pid): is_latest =0 cont =getUrlContent('http://www.cnblogs.com/cutepig/default.html?page=%d&OnlyTitle=1'%pid) fpLog =open('log.txt','a') fb =findBlog(cont) print >>fpLog, '--------page', pid print '--------page', pid while 1: ret =fb.get() if ret is None: break [url, title] =ret print >>fpLog, ret #print ret #why cannot print chinses? if not self.is_latest_written: logFile('cfg.txt', url) self.is_latest_written =1 print title.decode('utf-8') if url==self.latest_url: is_latest =1 break blogFname =url.replace(';','').replace('&','').replace('?','').replace(':','').replace('/','')+'.htm' logFile( blogFname, getUrlContent(url)) appendFile( 'index2.htm', '<a href=%s>%s</a><br>\n'%(blogFname, title)) fpLog.close() MyCmd('copy /y index2.htm+index.htm index.htm') return is_latest def read_all(self): pid =1 while 1: is_latest =self.readPage(pid) if is_latest: break pid =pid+1 br =blogReader() br.read_all()
View Code
相关文章推荐
- 批量下载百度博客所有的 css 代码
- 获得NOTEPAD++ Download Manager的所有下载列表的内容的au3脚本
- python爬虫爬取csdn博客专家所有博客内容
- 关于chunked gzip,socket下载网页内容. - xiqi8144的专栏 - 博客频道 - CSDN.NET
- windows7所有版本迅雷地址下载集合(含32位和64位) - imsoft.cnblogs
- 有关博客里所有设计模式的PHP版本实例源码的下载链接
- [SQLite]www.sqlite.org官网.NET最新版本所有内容下载
- java小demo:下载http://learning.sohu.com/s2004/7231/s221868027.shtml中所有的内容图片
- Python爬虫小实践:爬取任意CSDN博客所有文章的文字内容(或可改写为保存其他的元素),间接增加博客访问量
- 本博客停止更新所有内容转到www.fddcn.cn
- Python爬虫小实践:爬取任意CSDN博客所有文章的文字内容(或可改写为保存其他的元素),间接增加博客访问量
- 如何将远程页面的所有内容下载到本地
- 博客内容转至http://www.cnblogs.com/goodcook/
- 【python】爬虫2——下载亦舒博客首页所有文章
- Python爬虫小实践:爬取任意CSDN博客所有文章的文字内容(或可改写为保存其他的元素),间接增加博客访问量
- [Python下载CSDN博客]3. V2版本_完善内容显示格式和图片的下载
- 关于本博客所有代码下载方式及说明
- cnblogs博客下载-cnblogs博客导出-cnblogs博客备份工具-基于python
- 删除所有博客内容,重新开始