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

# -*-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. 最简单的视音频播放示例9:SDL2播放PCM

    本文记录SDL播放音频的技术.在这里使用的版本是SDL2.实际上SDL本身并不提供视音频播放的功能,它只是封装了视音频播放的底层API.在Windows平台下,SDL封装了Direct3D这类的API ...

  2. 数据库语言(三):MySQL、PostgreSQL、JDBC

    MySQL MySQL资料很多,这里只给出一个在论坛博客中最常用的操作:分页 mysql> select pname from product limit 10,20; limit的第一个参数是 ...

  3. Python抓取单个网页中所有的PDF文档

    Github博文地址,此处更新可能不是很及时. 1.背景 最近发现算法以及数据结构落下了不少(其实还是大学没怎么好好学,囧rz),考虑到最近的项目结构越来越复杂了,用它来练练思路,就打算复习下数据结构 ...

  4. UI篇--Android中3种方法实现back键动作

    方法一:重写onBackPressed方法 @Override public void onBackPressed() { // do something what you want super.on ...

  5. webdriver(python)学习笔记四——定位一组元素

    webdriver可以很方便的使用find_element方法来定位某个特定的对象,不过有时候我们却需要定位一组对象,这时候就需要使用find_elements方法. 定位一组对象一般用于以下场景: ...

  6. 完全参照系统自带的DatePickerDialog、TimePickerDialog的源代码仿写的DateTimePickerDialog

    完全参照系统自带的DatePickerDialog.TimePickerDialog的源代码仿写的DateTimePickerDialog.具有同时选择日期.时间的功能.在2.2.2.3平台,显示的效 ...

  7. mysql 游标最后一行 重复问题

    BEGINdeclare p_id INT;declare p_Code INT default 0;declare p_Logo INT default 0;declare p_Name varch ...

  8. 简单的flash策略文件服务器!

    最近在做一个flash小游戏,众所周知,flash连接服务器socket的时候,需要向服务器请求策略文件.以下是一个简单的策略文件服务器的代码c++: #include <Winsock2.h& ...

  9. AHOI2013 Round2 Day1 简要题解

    第一题,好吧这是个dp.(搜素也能在BZOJ上卡过). 第二题,BFS搜索碰到的立方体面数,智硬没有想到... 第三题,其实一看就有思路,但关键是求x坐标不交的矩形对数+y坐标不交的矩形对数 - x, ...

  10. 30 分钟 Java Lambda 入门教程

    Lambda简介 Lambda作为函数式编程中的基础部分,在其他编程语言(例如:Scala)中早就广为使用,但在Java领域中发展较慢,直到java8,才开始支持Lambda. 抛开数学定义不看,直接 ...