用python提取百度贴吧的小说

标签: python 百度贴吧 小说 | 发表时间:2011-10-05 19:48 | 作者:ToddNet2012 We_Get
出处:http://www.cnblogs.com/

这个博客主要是发表些关于Windows Phone开发相关方面的文章的,和 http://blog.sina.com.cn/u/2391033251 同步更新。不过今天不务正业一下,发表一段python代码。这个程序主要功能是从百度贴吧,获得html文件,然后用Beautiful Soup解析html文件,提取贴吧的帖子。干什么的?其实是来看小说的,想做的更自动化一些的,但是python开始学没多长时间,暂时做到这个程度了,以后有机会会考虑增强功能的。

代码如下:

#-*- encoding: utf-8 -*-
import urllib2
import re
from BeautifulSoup import BeautifulSoup

def stripHTMLTags (html):
'''strip html tags; from http://goo.gl/EaYp5'''
return re.sub('<([^!>]([^>]|\n)*)>', '', html)

def fetch_tieba(url,localfile,ignoreFansReq=False):
'''fetch the url resource and save to localfile'''

# fetch the url resource and encode to utf-8
html = urllib2.urlopen(url).read()
html = unicode(html,'gb2312','ignore').encode('utf-8','ignore')

# extract the main content
content = BeautifulSoup(html).findAll(attrs={'class':'d_post_content'})

# write the content to localfile
myfile = open(localfile,'w')
for item in content:
item_formatted = stripHTMLTags(str(item).replace('<br />','\r\n'))
if ignoreFansReq == True :
if len(item_formatted) < 100:
continue
myfile.write(item_formatted)
myfile.write('\r\n')
print item_formatted
myfile.close()

def main():
urlTarget = "http://tieba.baidu.com/p/1234371208"
localfileTarget = './xiaoshuo2.txt'
fetch_tieba(url=urlTarget,localfile=localfileTarget,ignoreFansReq=True)

if __name__ == "__main__":
main()

简单说明:
1 本人使用的开发环境是 Windows 7 Ultimate 32bit + Python 2.7;依赖 Beautiful Soup (地址) ,使用版本是 BeautifulSoup-3.2.0;
2 fetch_tieba函数参数的含义:url,贴吧资源目标地址;localfile,保存到本地文件的路径;ignoreFansReq,忽略插楼、求粉等灌水信息(只是根据文字数判断,很简陋);
3 代码具有时效性,如果百度贴吧的页面DOM发生改变,程序可能失效。 

作者: ToddNet2012 发表于 2011-10-05 19:48 原文链接

评论: 2 查看评论 发表评论


最新新闻:
· 乔布斯语录(2011-10-06 16:20)
· 虚幻3代游戏引擎加入Flash11支持(2011-10-06 16:13)
· 创业,你需要的是「密度」(2011-10-06 16:10)
· 记者现场直击:美国民众告别乔布斯(2011-10-06 16:03)
· 苹果发布会媒体评论:硬件失色,软件来弥补(2011-10-06 12:29)

编辑推荐:苹果公司宣布前CEO乔布斯辞世

网站导航:博客园首页  我的园子  新闻  闪存  小组  博问  知识库

相关 [python 百度贴吧 小说] 推荐:

用python提取百度贴吧的小说

- We_Get - 博客园-首页原创精华区
这个博客主要是发表些关于Windows Phone开发相关方面的文章的,和 http://blog.sina.com.cn/u/2391033251 同步更新. 不过今天不务正业一下,发表一段python代码. 这个程序主要功能是从百度贴吧,获得html文件,然后用Beautiful Soup解析html文件,提取贴吧的帖子.

百度贴吧阻止用户提到维基百科

- 小天 - Solidot
wmr 写道 "在百度贴吧上,一旦帖子内容包含“维基百科”或“wikipedia”就会说“有不适当内容”,因此不能提到,或链接到维基百科. 百度在维基百科刚刚解封时就这么做了. 最近有维基百科用户指出,百度的地图api说明文档使用了原为维基百科制作的MediaWiki软件. 有趣的是,百度地图api提供了一个把谷歌API制作的地图应用实现“零成本”迁移到百度的工具.

百度贴吧百度知道爆笑问答

- xiaocaochong - 无聊哦
这些筒子们真是太有才了,来看看百度贴吧/百度知道上的一些爆笑问答,笑死人不偿命~·. 推荐更多百度贴吧百度知道爆笑问答:. 百度知道超级雷人的搞笑问答​​​​​. 查看原文  |  发表评论(11). © 疾风 for 无聊哦 | 原文链接 | 搞笑哦 | 淘宝网上卖疯了的东东. 订阅 无聊哦 http://feed.wuliaoo.com.

央视再曝百度贴吧推失实信息 称不死人就没事

- xing - cnBeta.COM
继8月15日央视《经济与法》长达两个小时内曝光百度提供虚假网站致网友上当受骗后,央视昨日又对百度如何控制贴吧以及如何生财之道进行了报道. 报道称, 百度对贴吧尽在掌握,但是为了赚取点击率,对侵害公民人身权利的内容不管不顾. 虽然贴吧号称由网民自由发表,但百度仍可以控制他们. 此外,贴吧还针对高端 开发出“百度掘金”产品,日费用为3000元.

dropbox讲python

- chuang - Initiative
dropbox定制优化CPython虚拟机,自己搞了个malloc调度算法. 那个 !!!111cos(0). 期待这次PyCon China 2011.

Python调试

- - 企业架构 - ITeye博客
原文地址: http://blog.csdn.net/xuyuefei1988/article/details/19399137. 1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧:. IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试:.

Python WSGI 初探

- - 坚实的幻想
在构建 Web 应用时,通常会有 Web Server 和 Application Server 两种角色. 其中 Web Server 主要负责接受来自用户的请求,解析 HTTP 协议,并将请求转发给 Application Server,Application Server 主要负责处理用户的请求,并将处理的结果返回给 Web Server,最终 Web Server 将结果返回给用户.

Python实现逻辑回归(Logistic Regression in Python)

- - 神刀安全网
Logistic Regression in Python ,作了中文翻译,并相应补充了一些内容. 本文并不研究逻辑回归具体算法实现,而是使用了一些算法库,旨在帮助需要用Python来做逻辑回归的训练和预测的读者快速上手. 逻辑回归是一项可用于预测二分类结果(binary outcome)的统计技术,广泛应用于金融、医学、犯罪学和其他社会科学中.

python 下载文件

- Eric - python相关的python 教程和python 下载你可以在老王python里寻觅
之前给大家分享的python 多线程抓取网页,我觉的大家看了以后,应该会对python 抓取网页有个很好的认识,不过这个只能用python 来抓取到网页的源代码,如果你想用做python 下载文件的话,上面的可能就不适合你了,最近我在用python 做文件下载的时候就遇到这个问题了,不过最终得以解决,为了让大家以后碰过这个问题有更好的解决办法,我把代码发出来:.

python代码调试

- - 阿里古古
【转自: http://blog.csdn.net/luckeryin/article/details/4477233】. 本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程序. 例如,有模拟税收计算的程序:. debug_demo函数计算4500的入账所需的税收. 在需要插入断点的地方,加入红色部分代码:如果_DEBUG值为True,则在该处开始调试(加入_DEBUG的原因是为了方便打开/关闭调试).