下载豆瓣小组的帖子并只看楼主的Python实现,豆瓣python,如何能做到下载豆瓣小组的
下载豆瓣小组的帖子并只看楼主的Python实现,豆瓣python,如何能做到下载豆瓣小组的
如何能做到下载豆瓣小组的帖子,然后只看楼主的楼层呢?无依赖第三方,python2.X测试可用。python3没做过测试,代码无水准,直接字符串查找来解析HTML,仅仅够实现效果,代码不够好看,日后改进。
# Download douban group topic # Anonymous 2011-12@SZ# 基本设置post_url = "http://www.douban.com/group/topic/23871584/"post_start =0split_prefix = '<li class="clearfix">'poster_user_id = ''page_size = 100save_filename = 'douban-post.txt'log_falg = Truef = open(save_filename,'w')# start import urllib2import sysimport timeprint 'Start ... 'html = urllib2.urlopen(post_url+"?start="+str(post_start)).read()if html.index(split_prefix)<1:print 'This post has no content: url='+post_url+str(post_start)sys.exit(0)cc = html.find('topic-content')t_html = ''.join(html[cc:cc+150])poster_user_id = t_html[t_html.index('people')+7: t_html.index('img')-4]#www.iplaypy.comc = 0page = 0while True:page += 1if log_flag: print '\npage=%d * %d' %(page,page_size)c = (page-1) * page_size# posts in current pageposts = html.split(split_prefix)[1:]for p in posts:try:if (p.find('people/')>1):c += 1user_id = p[p.index('people/')+7:p.index('/"><img class="pil"')]if(user_id == poster_user_id):ss = '\n['+p[p.index('<h4>')+4:p.index('<h4>')+23] +" ]" +str(c)+"F "+ user_id + " : "+ p[p.index('<p>')+3:p.index('</p>')]if log_flag: print ssf.write(ss)f.flush()except ValueError:print '[error] Parse post error' continue# next pagepost_start += page_size;html = urllib2.urlopen(post_url+"?start="+str(post_start)).read()if html.find(split_prefix)<1:if log_falg: print 'Post is over !'breaktime.sleep(3) # let douban server sleep 3 seconds .f.close()print 'Finished !'
编橙之家文章,
相关内容
- 自动登陆Discuz论坛的通用python代码源码片段,,自动登陆
- python实现mssql里点数据集到AutoCAD的文本转换,,python实现
- python计算万年内的对称日代码,python计算万年,求对称日
- 基于web.py框架带提示的猜数字游戏,web.py猜数字,这是一
- python3.2循环单词求和功能,python3.2单词求和,是这一段基
- Python datetime计时程序的实现方法,pythondatetime,这个pyt
- 输出100以内的数字金字塔的形式显示方法,100金字塔
- Python工具火狐扩展打包,python火狐打包,这是一个关于火
- Python3.2完成简单文件搜索的代码,python3.2搜索代码,这是
- Python字典方法查询数据示例,python字典,Python学习到py
评论关闭