🍅 作者主頁:不吃西紅柿
🍅 簡介:CSDN博客專家🏆、資訊技術智庫公號作者?簡歷模板、PPT模板、技術資料盡管【關注】私聊我,歷史文章目錄:https://t.1yb.co/zHJo
🍅 歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!
本文重點:
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:
https://blog.csdn.net/community/home-api/v1/get-follow-list?page=%s&size=20&noMore=false&blogUsername=%s"%(p,Username)
需要傳入兩個引數:頁數、用戶id
%(p,Username)
第二步:爬蟲獲取關注名單
還是經典的爬蟲包: import requests
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資料可視化
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函式啟動
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)
好了,今天的「爬蟲」和「資料可視化」小課堂,就到這里了,我是西紅柿🍅,我們下期再見~
熱門專欄推薦:
🥇 大資料集錦專欄:大資料-硬核學習資料 & 面試真題集錦
🥈 資料倉庫專欄:數倉發展史、建設方法論、實戰經驗、面試真題
🥉 Python專欄:Python相關黑科技:爬蟲、演算法、小工具
(優質好文持續更新中……)?

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/296875.html
標籤:java
