前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >❤️ 爬虫分析CSDN大佬之间关系,堪比娱乐圈 ❤️

❤️ 爬虫分析CSDN大佬之间关系,堪比娱乐圈 ❤️

作者头像
不吃西红柿
发布2022-09-19 11:21:09
1790
发布2022-09-19 11:21:09
举报
文章被收录于专栏:信息技术智库

🍅 作者主页:不吃西红柿

🍅 简介:CSDN博客专家🏆、信息技术智库公号作者✌

本文重点: 1、爬虫获取csdn大佬之间的关系 2、可视化分析暧昧关系,复杂堪比娱乐圈

大佬简介

🍅 Java李杨勇:一个性感的计算机专业毕业的3年java开发者。

🍅 沉默王二:CSDN 头牌博主,Java 领域优质创作者,2019、2020 两届博客之星 Top5 。

🍅 擦姐yyds:现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者。

🍅 涛歌依旧:涛哥不知何许人也,亦不详其姓字。闲静少言,不慕荣利。好读书,求甚解。

🍅 Lucifer三思而后行:灵感来源于生活,故而热爱生活~

🍅 曲鸟:python领域新星创作者。

🍅 孤寒者:深入浅出的讲解Python基础知识&爬虫初阶及进阶&主流Web框架(Django等)

🍅 肥学大师:目前还是学生喜欢分享从每个项目得到的技术和趣闻类的文章。

不甚枚举......

目录

效果展示(动图不会录屏,只能截图了)

第一步:获取api

第二步:爬虫获取关注名单

第三步:python数据可视化

第四步:main函数启动


效果展示(动图不会录屏,只能截图了)

我们尤其可以看到:

这个「不吃西红柿」竟然关注了所有人,简直是朵交际花,不仅文章写得好,还爱交朋友! 据说,他最近有评论必回关  ❤

第一步:获取api

C站的关注api:

代码语言:javascript
复制
https://blog.csdn.net/community/home-api/v1/get-follow-list?page=%s&size=20&noMore=false&blogUsername=%s"%(p,Username)

需要传入两个参数:页数、用户id

代码语言:javascript
复制
%(p,Username)

第二步:爬虫获取关注名单

还是经典的爬虫包: import requests

代码语言:javascript
复制
def get_follow(Username):
    headers = {
        "User-Agent": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)",
        "accept": "application/json, text/javascript, */*; q=0.01",
        "accept-encoding": "gzip, deflate, br",
        "accept-language": "zh-CN,zh;q=0.9",
        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
        "cookie": "cookie",
    }
    data ={
        "page": "1",
        "size": "20",
        "noMore": "false",
        "blogUsername": Username
    }
    follow_list = []
    for p in range(1,101):
        url = "https://blog.csdn.net/community/home-api/v1/get-follow-list?page=%s&size=20&noMore=false&blogUsername=%s"%(p,Username)
        res = requests.get(url,headers=headers,data=data)

        fans = json.loads(res.text)['data']['list']
        if fans:
            follow_list.extend(fans)
        else:
            break
    ff = []
    for i in follow_list:
        ff.append(i['username'])
    return ff

第三步:python数据可视化

代码语言:javascript
复制
def graph(nodes, links):
    graph = Graph()
    graph.add("Name:", nodes,links, repulsion=8000)
    graph.set_global_opts(title_opts=opts.TitleOpts("关系图"))
    graph.render() #生成render.html

第四步:main函数启动

代码语言:javascript
复制
if __name__ == '__main__':
    nodes,links = [],[]
    blog = {
        'weixin_39032019': '不吃西红柿',
        'Mancuojie':'Mancuojie',
        'weixin_39709134': 'Java李杨勇',
        'zhongguomao': 'SAP剑客',
        'qing_gee': '沉默王二',
        'hihell': '擦姐yyds',
        'stpeace': '涛歌依旧',
        'jacke121': 'AI视觉网奇',
        'weixin_40400177': 'DrogoZhang',
        'm0_50546016': 'Lucifer三思而后行',
        'momoda118': '曲鸟大师',
        'qq_44907926': '孤寒大佬',
        'jiahuiandxuehui': '肥学大师',
            }
    blog_key = blog.keys()
    for blogUsername in blog:
        follows = get_follow(blogUsername)
        simple_follows = [val for val in follows if val in blog_key]
        nodes.append({"name": blog[blogUsername] })
        for one in simple_follows:
            if blog[blogUsername] != blog[one]:
                links.append({"source": blog[blogUsername] ,"target":blog[one] })
        print(links)
    graph(nodes,links)

好了,今天的「爬虫」和「数据可视化」小课堂,就到这里了,我是西红柿🍅,我们下期再见~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 效果展示(动图不会录屏,只能截图了)
  • 第一步:获取api
  • 第二步:爬虫获取关注名单
  • 第三步:python数据可视化
  • 第四步:main函数启动
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档