作者:华亮

转载请说明出处:http://blog.csdn.net/cedricporter

外面挂着台风,下午把人人相册的爬虫写了,晚上偶无聊又把QQ空间的博客的爬虫写了,默认只抓取提供的Q号的空间,可以在main.py里面填上Q号,也可以加个循环弄很多个Q号....博客里面的图片就木有理它了,要下载回来也很简单。有空再完善了。

# -*-coding:utf-8-*-
# Filename: main.py
# 作者:华亮
#from QQ import QQif __name__ == '__main__':# 第一个参数为QQ号,第二个为保存文件名QQ.DownloadBlog('414112390', 'blog.txt')
# -*-coding:utf-8-*-
# Filename: QQ.py
# 作者:华亮
#import urllib
import urllib2
import re
from HTMLParser import HTMLParser# 获取QQ空间博客列表
class QQBlogList(HTMLParser):in_key_div = Falsein_ul = Falsein_li = Falsein_a = FalseblogList = []lasturl = ''def handle_starttag(self, tag, attrs):attrs = dict(attrs)if tag == 'div' and 'class' in attrs and attrs['class'] == 'bloglist':self.in_key_div = Trueelif self.in_key_div:if tag == 'ul':self.in_ul = Trueelif self.in_ul and tag == 'li':self.in_li = Trueelif self.in_li and tag == 'a' and 'href' in attrs:self.in_a = Trueself.lasturl = attrs['href']def handle_data(self, data):if self.in_a:self.blogList.append((data, self.lasturl))def handle_endtag(self, tag):if self.in_key_div and tag == 'div':self.in_key_div = Falseelif self.in_ul and tag == 'ul':self.in_ul = Falseelif self.in_li and tag == 'li':self.in_li = Falseelif self.in_a and tag == 'a':self.in_a = Falseclass QQ:  '''QQ作者:华亮说明:自动下载QQ空间博客文章'''@staticmethod      def DownloadBlog(qq, filename = None):print 'Start'blogurl = 'http://qz.qq.com/%s/bloglist?page=0' % qqQQ.__Download(blogurl, filename)           print 'End'@staticmethoddef __Download(starturl, filename):url = starturlcookieFile = urllib2.HTTPCookieProcessor()opener = urllib2.build_opener(cookieFile)    # 获取所有页的文章路径while True:req = urllib2.Request(url)result = opener.open(req)        text = result.read()     qq = QQBlogList()        qq.feed(text)qq.close()          nextpagePattern = re.compile(r'<a href="(.*?)" title="下一页" class="bt_next"><span>下一页</span></a>')              nextpage = nextpagePattern.search(text)if nextpage:url = nextpage.group(1)            else:break  if not filename:filename = "blog.txt"file = open(filename, 'w')    # 下载文章blogContentPattern = re.compile(r'<div class="entry_content">(.*?)</div>', re.S) for title, url in qq.blogList:print 'Downloading', titlereq = urllib2.Request(url)result = opener.open(req)file.write('\n' + title + '\n')ret = blogContentPattern.search( result.read() )if ret:file.write(ret.group(1).replace('<p>', '\n'))file.close()

python抓取QQ空间博客文章相关推荐

  1. 使用Python爬取CSDN历史博客文章列表,并生成目录

    使用Python爬取CSDN历史博客文章列表,并生成目录 这篇博客将介绍如何使用Python爬取CSDN历史博客文章列表,并生成目录. 2020年 2020年04月 cv2.threshold() 阈 ...

  2. php 采集qq空间,php使用curl抓取qq空间的访客信息示例_php技巧

    这篇文章主要介绍了php使用curl抓取qq空间的访客信息示例,需要的朋友可以参考下 config.php<?php define('APP_DIR', dirname(__FILE__)); ...

  3. 用python爬取qq空间内容_利用Fiddler抓包和py的requests库爬取QQ空间说说内容并写入文件...

    [Python] 纯文本查看 复制代码#!C:\Program Files\Python36 python # -*- coding: UTF-8 -*- """ @au ...

  4. Python爬虫编程思想(103):项目实战--抓取QQ空间说说的内容

    本例使用Selenium完成一个综合项目,该项目可以QQ空间说说的内容.首先需要分析一下QQ空间说说的HTML代码. 由于进入QQ空间需要登录,所以抓取QQ空间说说的内容需要如下2步: 模拟登录 抓取 ...

  5. 手把手教你入侵网站修改数据_手把手教你使用Python抓取QQ音乐数据(第四弹)...

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  6. python爬取qq空间锁密图片_Python3爬取QQ空间信息(下)

    |下载W3Cschool手机App,0基础随时随地学编程>>戳此了解| 导语 内容回顾: Python爬取QQ空间信息(上) 按照(上)中的安排,本期内容为抓取QQ空间的好友信息并做可视化 ...

  7. 手把手教你使用Python抓取QQ音乐数据(第四弹)(文末赠书)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 千里之行,始于足下. [一.项目目 ...

  8. Atitit qzone qq空间博客自动点赞与评论工具的设计与实现

    Atitit qzone qq空间博客自动点赞与评论工具的设计与实现 Qzone发送评论的原理 首先,有个a标签, <a class="c_tx3" href="j ...

  9. 手把手教你使用Python抓取QQ音乐数据!

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  10. php取qq空间说说id,Python爬取qq空间说说的实例代码

    具体代码如下所示: #coding:utf-8 #!/usr/bin/python3 from selenium import webdriver import time import re impo ...

最新文章

  1. 永远不要辞职,除非……
  2. Java+Javascript图片裁剪简单封装
  3. GridSearchCV和RandomizedSearchCV调参
  4. MyEclipse 清理项目缓存的几大方法
  5. SAP CAM - Cloud Access Manager
  6. Python超越R,为何Python攀上数据科学巅峰?
  7. Spring开发--Bean配置实例讲解
  8. [转]phonegap 2.9 IOS Xcode 搭建环境
  9. sqlserver 没有维护计划_制定数据库备份计划,不再为数据丢失闹心!
  10. bzoj2150,poj1422,poj1548
  11. PowerDesign数据库建模导出至MySQL数据库
  12. Matplotlib 中文用户指南 8.2 我们最喜欢的秘籍
  13. c语言api接口文档模板,apiDoc生成接口文档,不费吹灰之力
  14. live2d_vue-live2d 看板娘
  15. 代理ip,代理服务器等相关
  16. thinkpad 自带软件的设置
  17. 阿里 vs. 腾讯,谁的收购更有眼光?
  18. android仿iphone日期时间选择器,jquery仿苹果的时间/日期选择效果
  19. mysql minus 语句用法,mysql如何用minus运算符?
  20. 什么是开源软件? 开源和FOSS解释

热门文章

  1. python三维图像切片成二维_Python:使用 pyts 把一维时间序列转换成二维图片
  2. 10015---Linux IO模式及 select、poll、epoll详解
  3. 穿行大街小巷 寻找“没落儿”的扬州
  4. RationalDMIS 2020 网络报表/网络编程连接设置
  5. Metpy_气象物理量计算(相对湿度、露点温度、湿位涡等)
  6. tplink软件升级有用吗_新版tplink路由器固件升级_tplink软件升级方法-192路由网
  7. 使用ret2reg攻击绕过地址混淆
  8. Codeforces Round #599 (Div. 1) C. Sum Balance(图+dp)
  9. andorid 源码北京公交线路查询(离线)
  10. 超级保镖计算机管理系统