python爬贴吧回复内容_Python爬虫_获取贴吧内容
对正则表达式要有更加深刻的研究,本程序对百度贴吧使用,但是截取不了表情。如果想把所有页面的内容都获取下来不难,拓展一下即可。
# -*- coding:utf-8 -*-
import urllib
import urllib2
import re
#处理页面标签类
class Tool:
#去除img标签,7位长空格
removeImg = re.compile('| {7}|')
#删除超链接标签
removeAddr = re.compile('|')
#把换行的标签换为\n
replaceLine = re.compile('
|
|')
#将表格制表
替换为\t
replaceTD= re.compile('
')
#把段落开头换为\n加空两格
replacePara = re.compile('
')
#将换行符或双换行符替换为\n
replaceBR = re.compile('
|
')
#将其余标签剔除
removeExtraTag = re.compile('<.>')
def replace(self,x):
x = re.sub(self.removeImg,"",x)
x = re.sub(self.removeAddr,"",x)
x = re.sub(self.replaceLine,"\n",x)
x = re.sub(self.replaceTD,"\t",x)
x = re.sub(self.replacePara,"\n ",x)
x = re.sub(self.replaceBR,"\n",x)
x = re.sub(self.removeExtraTag,"",x)
#strip()将前后多余内容删除
return x.strip()
#百度贴吧爬虫类
class BDTB:
#初始化,传入基地址,是否只看楼主的参数
def __init__(self,baseUrl,seeLZ):
self.baseURL = baseUrl
self.seeLZ = '?see_lz='+str(seeLZ)
self.tool = Tool()
self.file = None
self.defaultTitle = u"百度贴吧"
#传入页码,获取该页帖子的代码
def getPage(self,pageNum):
try:
url = self.baseURL+ self.seeLZ + '&pn=' + str(pageNum)
request = urllib2.Request(url)
response = urllib2.urlopen(request)
content = response.read().decode('utf-8')
#print content
return content
except urllib2.URLError, e:
if hasattr(e,"reason"):
print u"连接百度贴吧失败,错误原因",e.reason
return None
def getTitle(self):
page = self.getPage(1)
pattern = re.compile('
(.*?)',re.S)
#pattern = re.compile('
(.*?)',re.S)
#_compile(pattern, flags).search(string)报错就修改,加str
#result = re.search(pattern,str(page))
#findall得到的result是list结构的
result = re.findall(pattern,page)
if result:
#print result.group(1) #测试输出
#return result.group(1).strip()
#print result.encode('utf-8')
"""
因为result是list,只有一维的
for i in range(len(result)):
for j in range(len(result[i])):
print result[i][j].encode('utf-8')
"""
for i in range(len(result)):
print '标题:'+ result[i].encode('utf-8') + '\n'
self.file = open(result[i]+ ".txt","w+")
self.file.writelines(result[i].encode('utf-8') + '\n')
self.file.close()
#print result
return result[0]
else:
return None
# 获取帖子一共有多少页
def getPageNum(self):
page = self.getPage(1)
pattern = re.compile('
(.*?)',re.S)
#result = re.search(pattern,page)
result = re.findall(pattern,page)
if result:
#print result.group(1) #测试输出
#return result.group(1).strip()
#for i in range(len(result)):
# print result[i].encode('utf-8')
#print result
return result[0].encode('utf-8')
else:
return None
#获取每一层楼的内容,传入页面内容
def getContent(self):
page = self.getPage(1)
#pattern = re.compile('
',re.S)
#pattern = re.compile('
#pattern = re.compile('
',re.S)
pattern = re.compile('
for i in range(len(items)):
#print floor,u"楼---------------------------------------\n"
self.file.write(str(floor)+ '楼---------------------------------------\n')
floor += 1
#print self.tool.replace(items[i].encode('utf-8'))
self.file.write(self.tool.replace(items[i].encode('utf-8')) + '\n\n')
print '正在写入第'+str(floor-1)+'楼...'
self.file.close()
#baseURL = 'http://tieba.baidu.com/p/3138733512'
#baseURL = 'http://tieba.baidu.com/p/4399969515'
#baseURL = 'http://tieba.baidu.com/p/4400019865'
baseURL = 'http://tieba.baidu.com/p/4075653034'
#下面参数0表示看所有信息,1表示只看楼主信息
bdtb = BDTB(baseURL,0)
#bdtb.getPage(1)
#print bdtb.getTitle()
print '该贴吧总共有'+ str(bdtb.getPageNum()) + '页'
bdtb.getContent()
python爬贴吧回复内容_Python爬虫_获取贴吧内容相关推荐
- python爬取学校题库_Python爬虫实战-获取某网站题库
爬取*网站题库 import requests import re import time import html headers = { 'User-Agent':'Mozilla/5.0 (Win ...
- python爬微信公众号视频_python爬虫公众号所有信息,并批量下载公众号视频
之前写过一篇类似的文章:python爬取公众号,用最简单的方式爬虫 还有同学一直在问,可能中间有一些小细节不明确,这次彻底明确一下细节. 本篇添加一个批量下载公众号内视频的功能,可以实现完全复制一个公 ...
- python爬取网页数据软件_python爬虫入门10分钟爬取一个网站
一.基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序. 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HT ...
- python爬去百度百科词条_Python爬虫入门学习实践——爬取小说
本学期开始接触python,python是一种面向对象的.解释型的.通用的.开源的脚本编程语言,我觉得python最大的优点就是简单易用,学习起来比较上手,对代码格式的要求没有那么严格,这种风格使得我 ...
- python爬取公交车站数据_Python爬虫实例_城市公交网络站点数据的爬取方法
爬取的站点:http://beijing.8684.cn/ (1)环境配置,直接上代码: # -*- coding: utf-8 -*- import requests ##导入requests fr ...
- python爬取历史天气查询_Python爬虫实战-爬取历史天气数据
最近项目需要对合肥市历史天气数据进行爬取,分析了几个天气数据网站,最终选择天气后报网站. 将实现过程遇到的问题以及下来,供以后参考. 步骤分析 这里我使用的是Python中的requests库Beau ...
- python爬取网页数据流程_Python爬虫爬取数据的步骤
爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...
- python爬取数据的原理_Python爬虫原理
前言 简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML.JS.CSS代码返回给浏览器,这些代码经过浏览器解析.渲染,将丰富多彩的网页呈现我们眼前: 一.爬虫是什 ...
- python爬取虎扑评论_python爬虫系列Selenium定向爬取虎扑篮球图片详解
前言: 作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队.CBA明星.花边新闻.球鞋美女等等,如果一张张右键另存为的话真是手都点疼了.作为程序员 ...
- python微信公众号推送_python爬虫_微信公众号推送信息爬取的实例
问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...
最新文章
- 参考答案:01 线性方程组
- 清华大学计算机系71班张晨,“神仙打架”要来了!网友:又到了凡人围观的时刻...
- 第五章 逻辑回归模型在评分卡开发中的应用
- Pycharm 输出中文或打印中文乱码现象的解决办法
- iphone彻底删除照片如何恢复_手机删除的照片如何恢复?OPPO最新照片恢复
- php double 类型 浮点数相减
- Codeforces #430 dv.2 842A ,842B
- 非参数统计的Python实现—— Kruskal-Wallis 单因素方差分析
- LTE技术对PTN的影响
- HTTP 405Method not allowed
- 互联网早报 | 8月26日 星期三 | 蚂蚁集团递交招股文件;TikTok首次披露用户数据;滴滴开辟首个欧洲市场...
- Information Communication Technology,简称ICT
- 多屏互动之Windows与Mac下的非自带的远程桌面应用
- POJ 1795 DNA Laboratory 已被翻译
- sqlserver中,sql语句,按照汉字拼音首字母排序
- 新手程序员成长之路的五本必读书籍(附资源下载)
- ZUFE 2017院赛 - Problem K: Jelly与狗头人的地下世界 (DP)
- Cris 的Python日记(三):循环语句
- 自定义iOS的状态栏
- 怎样有效的恢复电脑回收站文件丨有效数据有哪些