下载新浪博客文章,保存成文本文件(python)

今天用Python写了一个下载韩寒新浪博客文章的下载器,恩,基本功能如下:

1、从新浪博客上批量下载文章,并按文章标题创建文件

2、对下载的文章进行格式化。

已知Bug:长篇文章格式会错乱

 1 #!/usr/bin/python
 2 #-*- coding:utf-8 -*-
 3
 4 import urllib
 5 import os
 6 import re
 7
 8 def article_format(usock,basedir):
 9     title_flag=True
10     context_start_flag=True
11     context_end_flag=True
12     for line in usock:
13         if title_flag:
14             title=re.findall(r‘(<title>.+?<)‘,line)
15             if title:
16                 title=title[0][7:-1]
17                 filename=basedir+title
18                 print filename
19                 try:
20                     fobj=open(filename,‘w+‘)
21                     fobj.write(title+‘\n‘)
22                     title_flag=False
23                 except IOError,e:
24                     print "Open %s error:%s"%(filename,e)
25             else:
26                 #print "Title has not found,drop it"
27                 pass
28         elif context_start_flag:
29             results1=re.findall(r‘(<.+?正文开始.+?>)‘,line)
30             if results1:
31                 context_start_flag=False
32         elif context_end_flag:
33             results2=re.findall(r‘(<.+?正文结束.+?)‘,line)
34             if results2:
35                 context_end_flag=False
36                 fobj.write(‘\nEND‘)
37                 fobj.close()
38                 break
39             else:
40                 if ‘div‘ in line or ‘span‘ in line or  ‘<p>‘ in line:
41                     pass
42                 else:
43                     line=re.sub(‘,‘,‘,‘,line)
44                     line=re.sub(‘:‘,‘:‘,line)
45                     line=re.sub(‘!‘,‘!‘,line)
46                     line=re.sub(‘(‘,‘(‘,line)
47                     line=re.sub(‘)‘,‘)‘,line)
48                     line=re.sub(‘⋯‘,‘...‘,line)
49                     line=re.sub(‘?‘,‘?‘,line)
50                     line=re.sub(‘;‘,‘;‘,line)
51                     line=re.sub(r‘<wbr>‘,‘‘,line)
52                     line=re.sub(r‘&nbsp;‘,‘‘,line)
53                     line=re.sub(r‘<br\s+?/>‘,‘‘,line)
54                     fobj.write(line)
55         else:
56             pass
57
58 if __name__==‘__main__‘:
59     basedir=‘/home/tmyyss/article/‘
60     if not os.path.exists(basedir):
61         os.makedirs(basedir)
62
63     usock=urllib.urlopen("http://blog.sina.com.cn/s/articlelist_1191258123_0_1.html")
64     context=usock.read()
65     #print context
66     raw_url_list=re.findall(r‘(<a\s+title.+?href="http.+?html)‘,context)
67     for url in raw_url_list:
68         url=re.findall(‘(http.+?html)‘,url)[0]
69         article_usock=urllib.urlopen(url)
70         article_format(article_usock,basedir)

时间: 2024-08-25 17:49:27

下载新浪博客文章,保存成文本文件(python)的相关文章

批量下载新浪博客文章(改进版)

恩,算是对前段时间写的那个的改进,重写了正则,同时支持翻页下载,还修改了一些bug.但还不支持多线程,打算过几天加上 1 #!/usr/bin/python 2 #-*- coding:utf-8 -*- 3 #**************************** 4 5 #author:tmyyss 6 #version:0.2 7 8 #**************************** 9 10 import urllib 11 import os 12 import re 13

Windows live Writer博客园,51CTO,网易博客,新浪博客配置方法

今天使用微软的Windows live Writer进行了博客园,51CTO,网易博客,新浪博客的博客发布.感觉效果不错,特别分享给大家.由于csdn账号忘记,所以... 先截个图给大家看下: 说下这款工具的作用吧,很多人在不同的博客网站申请了自己的博客,那么你是否还在为使用Ctrl+C的方式来达到博客的同步呢?如果答案是yes,那么强烈建议你使用Windows live Writer这款工具.当然你也可以实现Metaweblog API实现自己的博客发布器.甚至可以让微博同步博客,这都是可以的

python网络爬虫 新浪博客篇

上次写了一个爬世纪佳缘的爬虫之后,今天再接再厉又写了一个新浪博客的爬虫.写完之后,我想了一会儿,要不要在博客园里面写个帖子记录一下,因为我觉得这份代码的含金量确实太低,有点炒冷饭的嫌疑,就是把上次的代码精简了一下,用在另外一个网站而已,而且爬别人的博客总有一种做贼心虚的感觉,怕被各位园友认为是偷窥狂魔.但是这份代码总归是我花了精力去写的,我也不想就此让它深藏在硬盘之中(电脑实在太老了,可能过两年硬盘坏了,这份代码就消失了),还是贴出来权当作抛砖引玉. 说起要爬新浪博客,总归是有一个原因吧.我的原

用python2.7,采集新浪博客

#coding=utf-8 #新浪博客 import urllib import re import os url=['']*1500 #每一骗博客的地址 title=['']*1500 #每一篇博客的标题 page=1 #博客分页 count=1 #文章计数 while page<=9: con=urllib.urlopen('http://blog.sina.com.cn/s/articlelist_1193491727_0_'+str(page)+'.html').read() i=0 h

Python爬虫爬取一篇韩寒新浪博客

网上看到大神对Python爬虫爬到非常多实用的信息,认为非常厉害.突然对想学Python爬虫,尽管自己没学过Python.但在网上找了一些资料看了一下,看到爬取韩寒新浪博客的视频.共三集,第一节讲爬取一篇博客,第二节讲爬取一页博客.第三集讲爬取所有博客. 看了视频.也留下了代码. 爬虫第一步:查看网页源码: 第一篇博客的代码为蓝底的部分<a title="" target="_blank" href="http://blog.sina.com.cn/

新浪博客另类截流玩法

相信大家都在愁怎么才能让自己的粉丝裂变.今天就分享一个"神器"玩法,我们很多时候都离不开引流,然后通过转化,形成成交,做好了之后打造一个售后系统处理后续问题.其实整个无非说穿了就是这么多,再者执行力的问题. 我们发广告.加好友.做截流,其实本质是都是为了流量,是为了让更多的人看到你的产品,然后产生购买.因此"流量为王"几乎让多数人达成共识.没有流量来,你的产品,你的思维还能卖出去吗? 有个朋友爆料最近的新玩法.还有一些截流.同行相互竞争的. 下面给大家说说具体操作步

LoadRunner测试结果分析03 转载至zhangzhe的新浪博客

LoadRunner测试结果分析之我见 前面分析的Web Resource(网络资源)的测试情况,其主要关注的是服务器性能,而系统本身和环境都有可能存在问题,页面诊断(Web Page Diagnostics)主要就是关注这方面的问题.页面诊断可以很好地定位环境问题,如客户端问题.网络问题等,也可以很好的分析系统本身的问题,如网页问题. 1.Web Page Diagnostics (网页诊断)对测试过程中所有的页面进行一个 信息汇总,可以很容易地观察出哪个页面下载耗时,然后选择该页面得其页面分

MWeb 1.3.7 发布!增加发布到 Wordpress 等支持 MetaWeblog API 的服务,如:Wordpress 博客、新浪博客、cnblogs、oschina。

MWeb 1.3.7 版的新功能 增加发布到 Wordpress 等支持 Metaweblog API 的服务,目前经测试过的有: Wordpress 博客.新浪博客.cnblogs.oschina. 增加发布到 Tumblr 和 Scriptogr.am 即时预览改进,原来会闪动,现在拿掉了同步滚动功能后不会了. 编辑器和三栏切换也有小改进. 下边介绍一下发布到 Wordpress 等支持 Metaweblog API 的功能 我所知,Mac 下支持这一功能的 Native 的 Markdow

【转载】利用新浪博客建设网站外链

当今网络管理机制越来越完善,允许发外接的网站越来越少,建设网站外链变得越来越困难,今天和大家分享一篇文章,告诉你如何利用新浪博客建设网站外键. 目前国内知名的博客平台有QQ.网易.新浪.搜狐.百度等,先来分析一下为什么我为什么选择新浪博客建设网站外链? 腾讯博客(QQ空间)是不被搜索引擎收录的,所以直接淘汰. 网易博客使用的是三级域名,即使成功建设外链权重也不高. 百度博客(百度HI)即将要关闭了,完全是浪费时间. 搜狐博客也是使用三级域名,权重并不高. 新浪博客的内容页使用 blog.sina