用python获取贴吧中留下的邮箱

来源:互联网 发布:win10的ps软件 编辑:程序博客网 时间:2024/04/29 12:11

   正所谓得屌丝着得天下,贴吧就是屌丝们聚集的地方,有时候会看到楼主发一个福利帖子,然后下面留下几页的邮箱。这么多邮箱,收集起来就可以做一些邪恶的事情

我的思路:(我没有用多线程,如果你想大量收集的话,可以采用多线程)

1.获取首页的50个帖子的地址

2.进入每个帖子,获取帖子的页数

3.如果这个帖子第一页没有邮箱,就爬下一个帖子,免得浪费资源

4.我只是把邮箱打印出了,需要的话自己可以写进函数,存到自己的硬盘上

import urllibimport reimport threading                #获得网页源码def getHtml(url):    html=urllib.urlopen(url).read()    return html#html是网页源码,regx是正则表达式def getRegx(html,regx):    reg=re.compile(regx)    result=re.findall(reg,html)    return resultdef getMail(website):     for i in range(10):        ipn=i*50        url=website+'&pn=%d' % ipn        #print '----第%d页-----' % i        #获得每个帖子的网址               xurllist=getRegx(getHtml(url),url_regx)        for i in range(len(xurllist)):            xurl='http://tieba.baidu.com'+xurllist[i]                      #获得页数            pn=getRegx(getHtml(xurl),pn_regx)            print '----------------------------'            print '第%d个帖子,共有%d页' % (i,int(pn[0]))            for j in range(1,int(pn[0])):                #获得邮箱                pnurl=xurl+'?pn=%d' % j                #print pnurl                maillist=getRegx(getHtml(pnurl),mail_regx)                #print '-----------------'                print '--第%d页:' % j                print '--网址:'+pnurl                print '--邮箱个数:'+str(len(maillist))                #如果第一页每一邮箱就退出                if len(maillist)==0:                    break                else:                                       for mail in maillist:                        print mailif __name__=='__main__':    #获取页数的正则    pn_regx=r'<span class="red">(.*?)<'    #获取qq邮箱的正则    mail_regx=r'(\d{9,10}@qq\.com)'    #获得每个帖子的正则    url_regx=r'<div class="threadlist_text threadlist_title j_th_tit  notStarList "><a href="(.*?)"'    url=raw_input('the website:')    getMail(url)
结果:


注意:

1.我获取的只有qq邮箱,我觉得qq邮箱的价值可能要高点

2.好像查看贴吧第二页的帖子需要登录,python模拟登录百度的源码,网上很多

0 0
原创粉丝点击