这是为了量化地统计吧内活跃的ID的排名
爬了每个帖子中所有的页,以及所有页中的楼中楼,以及楼中楼中所有的页。
支持根据回复的时间判断是否为有效回复。
本来打算写成多线程,但看到SAE限制了多线程,如果放到上面估计用不了,于是没改,其实应该不会太难。
从前根据beautifulsoup写过一个,现在写这个脱离了bs,自己写了个text_wrapped_by_all的函数做简单的查找工作,于是可以根据标记对各个所需参数查找。大半年过去,自己再重写一次还是发现自己有很大的提高。
自己还写了另外一个百度process的库,用于登录后做一些简单的事情,发帖回帖之类的,配合上这个库,放到服务器上就可以实现每天自动更新吧内的活跃ID,并发帖公布的功能
具体实现看源码,都有注释
#coding:gbk
import cookielib,urllib2,urllib
import time
lzlurl='http://tieba.baidu.com/p/comment?tid=%s&pid=%s&pn=%s'
#以下是各个需要查找的参数的标记
#-----------------------------------
#从50个帖子的页中获得各帖子的ID
tieid=['<a href="/p/','" title="']
#从帖子内部的一页中获得用户ID
userid=['m&st_type=uname" target="_blank">','</a>\t\t\t </li>\r\n\t\t\t <li class="l_badge">']
#一个帖子的页数
intiepages=['共有<span class="red">','</span>\xd2\xb3</li>\r\n\t<li class="l_repl']
#帖子内部一页直接可以看到的LZL的用户ID
lzlinp=['hideattip(this);">','</a>:\r\n\t']
#翻页的LZL中的用户ID
inlzl=['hideattip(this);">','</a>:\r\n']
#获得token
ftoken=[".login_token='","\';\r\n\tbdPass"]
#帖子内一页中对应ID的回复时间
pudate=['"date":"','","vote_crypt":"","flo']
#帖子内一页中LZL对应ID的回复时间
pldate=['lzl_time">','</span>\r\n\t']
#一页LZL中对应ID的回复时间
ppdate=['lzl_time">','</span>\r\n']
def text_wrapped_by_all(st,ed,text,isall&#