python抓取QQ空间博客文章
作者:华亮
转载请说明出处:http://blog.csdn.net/cedricporter
# -*-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空间博客文章相关推荐
- 使用Python爬取CSDN历史博客文章列表,并生成目录
使用Python爬取CSDN历史博客文章列表,并生成目录 这篇博客将介绍如何使用Python爬取CSDN历史博客文章列表,并生成目录. 2020年 2020年04月 cv2.threshold() 阈 ...
- php 采集qq空间,php使用curl抓取qq空间的访客信息示例_php技巧
这篇文章主要介绍了php使用curl抓取qq空间的访客信息示例,需要的朋友可以参考下 config.php<?php define('APP_DIR', dirname(__FILE__)); ...
- 用python爬取qq空间内容_利用Fiddler抓包和py的requests库爬取QQ空间说说内容并写入文件...
[Python] 纯文本查看 复制代码#!C:\Program Files\Python36 python # -*- coding: UTF-8 -*- """ @au ...
- Python爬虫编程思想(103):项目实战--抓取QQ空间说说的内容
本例使用Selenium完成一个综合项目,该项目可以QQ空间说说的内容.首先需要分析一下QQ空间说说的HTML代码. 由于进入QQ空间需要登录,所以抓取QQ空间说说的内容需要如下2步: 模拟登录 抓取 ...
- 手把手教你入侵网站修改数据_手把手教你使用Python抓取QQ音乐数据(第四弹)...
[一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...
- python爬取qq空间锁密图片_Python3爬取QQ空间信息(下)
|下载W3Cschool手机App,0基础随时随地学编程>>戳此了解| 导语 内容回顾: Python爬取QQ空间信息(上) 按照(上)中的安排,本期内容为抓取QQ空间的好友信息并做可视化 ...
- 手把手教你使用Python抓取QQ音乐数据(第四弹)(文末赠书)
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 千里之行,始于足下. [一.项目目 ...
- Atitit qzone qq空间博客自动点赞与评论工具的设计与实现
Atitit qzone qq空间博客自动点赞与评论工具的设计与实现 Qzone发送评论的原理 首先,有个a标签, <a class="c_tx3" href="j ...
- 手把手教你使用Python抓取QQ音乐数据!
[一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...
- php取qq空间说说id,Python爬取qq空间说说的实例代码
具体代码如下所示: #coding:utf-8 #!/usr/bin/python3 from selenium import webdriver import time import re impo ...
最新文章
- 永远不要辞职,除非……
- Java+Javascript图片裁剪简单封装
- GridSearchCV和RandomizedSearchCV调参
- MyEclipse 清理项目缓存的几大方法
- SAP CAM - Cloud Access Manager
- Python超越R,为何Python攀上数据科学巅峰?
- Spring开发--Bean配置实例讲解
- [转]phonegap 2.9 IOS Xcode 搭建环境
- sqlserver 没有维护计划_制定数据库备份计划,不再为数据丢失闹心!
- bzoj2150,poj1422,poj1548
- PowerDesign数据库建模导出至MySQL数据库
- Matplotlib 中文用户指南 8.2 我们最喜欢的秘籍
- c语言api接口文档模板,apiDoc生成接口文档,不费吹灰之力
- live2d_vue-live2d 看板娘
- 代理ip,代理服务器等相关
- thinkpad 自带软件的设置
- 阿里 vs. 腾讯,谁的收购更有眼光?
- android仿iphone日期时间选择器,jquery仿苹果的时间/日期选择效果
- mysql minus 语句用法,mysql如何用minus运算符?
- 什么是开源软件? 开源和FOSS解释
热门文章
- python三维图像切片成二维_Python:使用 pyts 把一维时间序列转换成二维图片
- 10015---Linux IO模式及 select、poll、epoll详解
- 穿行大街小巷 寻找“没落儿”的扬州
- RationalDMIS 2020 网络报表/网络编程连接设置
- Metpy_气象物理量计算(相对湿度、露点温度、湿位涡等)
- tplink软件升级有用吗_新版tplink路由器固件升级_tplink软件升级方法-192路由网
- 使用ret2reg攻击绕过地址混淆
- Codeforces Round #599 (Div. 1) C. Sum Balance(图+dp)
- andorid 源码北京公交线路查询(离线)
- 超级保镖计算机管理系统