下载豆瓣小组的帖子并只看楼主的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 !'

编橙之家文章,

评论关闭