从手机页面读取,有时候也会卡死,解决办法还是重新来………………

# -*-coding:utf-8-*-
# 作者:fwindpeak
#
import urllib
import urllib2
import re
from HTMLParser import HTMLParser htmstart='''<html>
<head>
<meta charset="utf-8"/>
<title>qzone_blog</title>
</head>
<body>
'''
htmend='''</body>
</html>
''' def cn(s):
return s.decode("utf-8").encode("gbk") def DownloadBlog(qq, filename = None):
blogList = []
print 'Start'
if filename==None:
filename="%s.htm"%qq
blogurl = 'http://z.qq.com/blog/blog_list.jsp?sid=AefvkfGVCCDx2PfXiaquF7pf&B_UID=%s'%qq url = blogurl
cookieFile = urllib2.HTTPCookieProcessor()
opener = urllib2.build_opener(cookieFile)
opener.addheaders = [('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),
('Referer','http://z.qq.com/'),
('User-Agent','Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91)\
AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1')] # 获取所有页的文章路径
pagenum=0
while True:
req = urllib2.Request(url)
result = opener.open(req)
text = result.read()
detailPattern = re.compile(r'href="(.+blog_detail.jsp?.+)">(.+)</a>')
detail = re.findall(detailPattern,text)
#print detail
blogList.append(detail)
nextpagePattern = re.compile(r'href="(.*?)">下页</a>')
nextpage = nextpagePattern.search(text)
if nextpage:
pagenum=pagenum+1
url = nextpage.group(1)
url=url.replace('amp;','')
print url
print "page %d"%pagenum
else:
break file = open(filename, 'w')
htmstart='''<html>\
<head>\
<meta charset="utf-8"/>\
<title>qzone_blog_%s</title>\
</head>\
<body>\
'''%qq
file.write(htmstart);
# 下载文章
blogContentPattern = re.compile(r'<p class="tabs-1">(.+<br/>.+)<p class="tabs-1"><br/>相关搜索', re.S)
try:
for dat in blogList:
for url,title in dat:
#print url,title
url=url.replace('amp;','')
url=url+"&isReadAllPage=true"
print 'Downloading', cn(title)
text = opener.open(url,).read()
#print text
ret = blogContentPattern.search(text)
if ret:
txt = ret.group(1)
#print txt
file.write(txt)
file.write("<br/><hr/><br/>")
except Exception,e:
print e
pass
finally:
opener.close()
file.write(htmend)
file.close() if __name__ == '__main__':
print "QZone blog download"
qq=raw_input("QQ:")
DownloadBlog(qq)

批量下载QQ空间日志的更多相关文章

  1. 设计模式综合列表【QQ空间日志转载】

    C++设计模式全篇 [QQ空间日志转载]

  2. 怎么批量删除qq空间说说

    1.打开自己的QQ空间 - 说说——右击说说审查元素,打开审查元素.或者直接按f12也可以. 2.在这里我们看到很多分类 3.点击 Console,进入Console项 4.粘贴删除说说的代码,代码为 ...

  3. 批量删除QQ空间说说

    第一步:用电脑打开浏览器登录你的QQ空间 第二步:点击你的说说栏目 第三步:按下电脑的F12键或者点击右上角的菜单一栏,点击开发者工具 第四步:看到右半边屏幕,找到一个叫Console的菜单,并且点击 ...

  4. VS2010 .net4.0 登录QQ 获取QQ空间日志 右键选中直接打开日志 免积分 源码下载

    代码有一部分是原来写的  最近翻代码 看到了  就改了一下 CSDN上传源码 上传了几次都没 成功 郁闷   不知道怎么回事 上传不了 想要的留 邮箱 或加群77877965 下载地址在下面 演示地址 ...

  5. QQ空间漫步者

    主要功能(QQ空间) 判断空间权限并跳过无法访问 留下足迹并可选:同时留言(可单独),赞主页(可单独),赞说说(可单独) 其他附加功能,导出QQ,导入群成员,好友,空间访客,说说评论,发表说说 送空间 ...

  6. qq空间相册下载

    qq空间相册下载 描述 目前功能只可以下载 单个相册 程序基本是3个独立分开的部分. 解析(某一用户)所有相册 解析(单个)相册所有图片地址并写文件 根据文件下载图片 目的 只要有权限可以访问到的相册 ...

  7. [WPF源代码]QQ空间相册下载工具

    放一个WPF源代码,源代码地址 http://download.csdn.net/detail/witch_soya/6195987 代码没多少技术含量,就是用WPF做的一个QQ空间相册下载工具,效果 ...

  8. QQ空间魔力日志大全SduSRZ

    大家好~最近,在QQ空间里出现了一种神奇的日志,谁看显示谁的信息,在个人中心显示的是一张图片,在日志里显示的又是另一张图片.这就是传说中的魔力日志.魔力日志从今年的9月份开始盛行,因为具有谁看就针对谁 ...

  9. QQ空间相册照片批量导出

    QQ空间相册照片批量导出 先自己创建一个私人的单独的群,然后创建相册,上传照片来源从空间选图复制 复制完成后打开相册开始骚操作(两种方式) OK

随机推荐

  1. TS 流解码过程

    TS 流解码过程: 1. 获取TS中的PAT 2. 获取TS中的PMT 3. 根据PMT可以知道当前网络中传输的视频(音频)类型(H264),相应的PID,PCR的PID等信息. 4. 设置demux ...

  2. BMP图像格式

    BMP(全称Bitmap)是Window操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广.它采用位映射存储格式,除了图像深度可选以外,不采用其他任 ...

  3. Android下高斯模糊的算法和demo

    采用纯java和RenderScript两种方式来做高斯算法. 也可以用NDK来做,想试试的可以参考: http://stackoverflow.com/questions/2067955/fast- ...

  4. 也说Autofac在MVC的简单实践:破解在Controller构造函数中的实例化 - winhu

    相信大家对Autofac并不陌生,很多人都在使用.本文只是介绍一下本人在使用时的一点想法总结. 在使用一个框架时,肯定要去它的官网查阅一下.autofac的官网给出了一些经典的使用案例.如注册容器: ...

  5. Ecshop ajax 局部刷新购物车功能

    1.比如我们category.dwt 里有 <a href='flow.php'><SPAN id='cart_count_all'>{insert name='cart_in ...

  6. [转] C# 泛型类型参数的约束

    啊.紫原文C# 泛型类型参数的约束 在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制.如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编译时错误.这些限制 ...

  7. FOJ 1962 新击鼓传花游戏 线段树

    维护一个sum数组,有点划分树的思想,写过划分树的应该能看出来 #include<cstdio> #include<algorithm> #include<iostrea ...

  8. UITextView 相关知识点

    1.得到UITextView的高度 - (CGRect)contentSizeRectForTextView:(UITextView *)textView { [textView.layoutMana ...

  9. 《Python CookBook2》 第一章 文本 - 每次处理一个字符 && 字符和字符值之间的转换

    文本 - 总结: 什么是文本Python 中的string 类型是不可变类型.文本,一个字符的矩阵,每一个单独的文本快可以被缩进和组织起来. 基本的文本操作①解析数据并将数据放入程序内部的结构中:②将 ...

  10. 【跟我一起学python吧】python chr()、unichr()和ord()

    chr().unichr()和ord() chr()函数用一个范围在range(256)内的(就是0-255)整数作参数,返回一个对应的字符.unichr()跟它一样,只不过返回的是Unicode字符 ...