Weibo安全圈关注排名

首先通过脚本遍历微博关注列表。。 self._startid = 1652595727 随便找一个黑客大佬的ID就行。

#coding:utf-8
import requests
import json
import re
from bs4 import BeautifulSoup
import pymongo
import Queue
import time


class sec_weibo:
    def __init__(self):
        self._startid = 1652595727
        self.id = 0
        self.client = pymongo.MongoClient('mongodb://172.17.0.2/')
        self.db = self.client['weibo']
        self.posts = self.db['users']
        self.tagets = Queue.Queue()

    def get_follow(self):
        url = "https://weibo.cn/%d/follow" % self.id

        #cookies
        cookies = {}
        cookies_str = "自己通过chrome F12获取cookie,控制台的不行,因为有HTTP ONLY"
        
        cookies_str = cookies_str.split(";")
        for cookie in cookies_str:
            cookie = cookie.split("=")
            cookies[cookie[0]] = cookie[1]

        #获取关注的总页数    
        try:
            res = requests.get(url,cookies=cookies)
            soup = BeautifulSoup(res.content,"lxml")
            soup.input['type']="hidden"
            soup.input['name']="mp"
            total_page = soup.find_all("input")[4]['value']
        except:
            print "启动失败,请重新启动引擎。可能是被微博封IP了。"
            time.sleep(60)
            exit(0)

        n = 0

        follows = []

        #采集每页的关注
        for page in range(1, int(total_page) + 1):
            time.sleep(0.5)
            try:
                url = "https://weibo.cn/%d/follow?page=%d" % (self.id, page)
                res = requests.get(url,cookies=cookies)
                soup = BeautifulSoup(res.content,"lxml")
                soup.td['valign']="top"
                for user in soup.find_all("td"):
                    if "style=\"width: 52px\"" not in str(user):
                        follow = {}
                        re_name = "\">(.+?)</a>"
                        re_uid = "uid=(.+?)&"
                        name = re.findall(re_name, str(user))[0].split(">")[1]#.decode("utf-8").encode("gbk")
                        uid = re.findall(re_uid, str(user))[0]
                        print name
                        print uid
                        print '-' * 50,
                        n += 1
                        print n
                        follow["name"] = name
                        follow["uid"] = uid
                        self.tagets.put(uid)
                        follow["follow"] = str(self.id)
                        #raw_input()
                        follows.append(follow)
            except:
                print "当前页面数据抓取失败,跳过。"
                time.sleep(10)
        self.posts.insert_many(follows)
        print "休息10秒!"
        time.sleep(10)
        

    def run(self):
        self.id = self._startid
        self.get_follow()
        while self.tagets.qsize() > 0:
            print "qsize %d" % self.tagets.qsize()
            self.id = int(self.tagets.get())
            try:
                self.get_follow()
            except:
                print "此用户数据抓取失败,跳过。"
if __name__ == "__main__":
    work = sec_weibo()
    work.run()

爬到数据之后,进行统计和排序。

import Queue
import pymongo

class data_analy:
    def __init__(self):
        self.client = pymongo.MongoClient('mongodb://127.0.0.1/')
        self.db = self.client['weibo_vps']
        self.posts = self.db['users']
        self.tagets = Queue.Queue()

    def run(self):
        res = self.posts.aggregate([
            {"$group":{"_id":"$name","total":{"$sum":1}}}
                                ])
        result = [] 
        for i in res:
            if i["total"] > 100:
                result.append(str(i["total"]) + "<====>" + i["_id"])

        result.sort()
        for i in result:
            print i
if __name__ == "__main__":
    work = data_analy()
    work.run()

结果:
101<====>Fooying
101<====>Seay_法师
101<====>安全北北
101<====>李劼杰
102<====>月亮山大王
102<====>粉丝服务平台
104<====>KeenTeam
106<====>alert7
106<====>瘦肉丁
107<====>唐门三少_tang3
107<====>栋栋的栋
107<====>爱吃猪肉的ztz
108<====>微博客服
108<====>赵彦_ayazero
110<====>xfkxfk
111<====>Seebug漏洞平台
111<====>互联网的那点事
111<====>吃瓜群众-Fr1day
112<====>秒拍
112<====>腾讯科恩实验室
112<====>阿里云安全
113<====>pynerd
113<====>左耳朵耗子
113<====>瘦古龙
113<====>阿里安全应急响应中心
113<====>黄源小童鞋
114<====>aullik5
116<====>微博数据助手
117<====>PanguTeam
117<====>xisigr
117<====>知乎
118<====>局座召忠
118<====>薛之谦
119<====>佳佳是个软妹纸
120<====>D3AdCa7
121<====>evi1m0
121<====>微博打赏
124<====>RicterZ
124<====>nearg1e
124<====>粉丝群
126<====>RevengeRangers
126<====>rock509
126<====>央视新闻
126<====>微博运动
127<====>拍客小助手
127<====>网易云音乐
128<====>人民日报
130<====>一直播
134<====>矮穷龊-陆羽
134<====>陈良-KeenLab
135<====>Val0z0
136<====>evil_xi4oyu
136<====>exp-sky
140<====>RAyH4c
140<====>国际版小助理
140<====>定时微博小助手
140<====>沈沉舟
142<====>宫一鸣cn
144<====>王思聪
146<====>微博故事
147<====>白帽汇赵武
148<====>yuange1975
148<====>古河120
148<====>长亭科技
150<====>real-肉肉
151<====>Orange_tw
151<====>riusksk
152<====>EvilMoon
156<====>杨卿-Ir0nSmith
159<====>博物杂志
159<====>碳基体
160<====>sunwear
163<====>redrain_QAQ
163<====>乌云知识库
165<====>GeekPwn
167<====>SecWiki
167<====>papi酱
167<====>乌云-漏洞报告平台
168<====>廖新喜已被注销
174<====>安全客官方微博
175<====>龚广OldFresher
177<====>我叫0day谁找我

183<====>phithon别跟路人甲BB
184<====>phunter_lau
188<====>FreeBuf
189<====>安全
云舒
192<====>微博红包
194<====>微博问答
200<====>微博安全中心
201<====>呆子不开口
203<====>粉丝红包
208<====>余弦
209<====>tombkeeper
212<====>微博抽奖平台
212<====>来去之间
216<====>超级话题
220<====>Flanker_017
229<====>蒸米spark
261<====>腾讯玄武实验室

嘿嘿。。 这些就是微博里安全圈的大佬了。
也可以像先知里那样,整理一个关注关系网的可视化效果。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339

推荐阅读更多精彩内容

  • 目前能ping通的IP:216.58.193.51 59.18.44.245 59.18.44.53 59.18....
    StevenZack阅读 1,555评论 0 0
  • "漂亮的姑娘就要嫁人啦",慕容晓晓这样唱道,唱红了每条大街小巷。曾经,我思想极端到认为多看"漂亮姑娘"两眼都是作恶...
    Eeyore阅读 209评论 0 0
  • def print_memory():import psutilchromes = [p for p in psu...
    流浪骑士阅读 315评论 0 1
  • 佛说,前生的五百次回眸,才换来今生的一次擦肩而过。 或早或晚,在人海茫茫中遇到一个心意相通的人。从此看星星看月亮看...
    安夏茉阅读 1,438评论 56 49
  • 长衫醉卧晚枫亭,残霞映雪碧天净。玉碗乘汤和烟雨,何来悲苦一叹息?
    秋一叶西阅读 501评论 0 0