日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python b站 礼物_[我叫以赏]Python获取B站UP主粉丝数

發(fā)布時(shí)間:2025/4/16 python 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python b站 礼物_[我叫以赏]Python获取B站UP主粉丝数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

不少人對(duì)B站粉絲數(shù)有著強(qiáng)烈的“控制感”,特別是B站用戶“老番茄”的粉絲數(shù)要達(dá)到1000萬(wàn)了,不少人想要見(jiàn)到突破1000w粉的那一瞬間,雖然有很多網(wǎng)站提供了B站粉絲走圖、粉絲統(tǒng)計(jì)等功能但是誰(shuí)不想知道后面的原理呢?誰(shuí)又不想獲得制作成功的那份成就呢?這篇文章,將會(huì)帶領(lǐng)您一起使用Python編程!

接口

如果你對(duì)B站用戶首頁(yè)有進(jìn)行抓包,以 老番茄 為例,那你肯定會(huì)找到這樣一串?dāng)?shù)據(jù):

地址:https://api.bilibili.com/x/web-interface/card?mid=546195

方式:GET

返回的數(shù)據(jù)為:返回?cái)?shù)據(jù)

這一串?dāng)?shù)據(jù)里包含了 用戶姓名 、 用戶簡(jiǎn)介 、用戶粉絲數(shù)等公開(kāi)的個(gè)人信息。而我們需要的是粉絲數(shù)。認(rèn)真分析一下后發(fā)現(xiàn)這串?dāng)?shù)據(jù)是一個(gè)字典,通過(guò)PyCharm分析應(yīng)該為這個(gè)樣子:分析結(jié)果

假設(shè)這串字符在一個(gè)變量 Dict 里,那么粉絲數(shù) 應(yīng)該表示為

Dict['data']['follower'] 或者為 Dict['data']['card']['fans'](有兩個(gè)地方標(biāo)記)

開(kāi)始編程

我們的思路如下:軟件思路

request.get() 函數(shù)是獲取網(wǎng)頁(yè)

json.loads() 函數(shù)是將json格式數(shù)據(jù)轉(zhuǎn)換為字典(可以這么理解,json.loads()函數(shù)是將字符串轉(zhuǎn)化為字典)

問(wèn)題來(lái)了,這么獲取用戶數(shù)據(jù)呢?

用戶uid是什么?(不知道的退群吧)Uid獲取方法在地址欄老番茄個(gè)人空間

現(xiàn)在開(kāi)始打代碼:代碼片段-1

import requests #導(dǎo)入requests模塊

UserUid = 546195 #定義用戶uid方便后面操作

data = requests.get('https://api.bilibili.com/x/web-interface/card?mid=%d'%(UserUid)) #GET網(wǎng)址獲取內(nèi)容

print(data.text) #輸出數(shù)據(jù)

調(diào)試輸出的內(nèi)容如下:代碼返回

但是返回的并不是字典,我們通過(guò)json.loads()進(jìn)行轉(zhuǎn)化代碼片段-2

import requests #導(dǎo)入requests模塊

import json #導(dǎo)入json模塊

UserUid = 546195 #定義用戶uid方便后面操作

data = requests.get('https://api.bilibili.com/x/web-interface/card?mid=%d'%(UserUid)) #GET網(wǎng)址獲取內(nèi)容

information = json.loads(data.text) #輸出數(shù)據(jù)

print(information)代碼返回

現(xiàn)在可以通過(guò)字典打印出發(fā)送數(shù)量了!

import requests # 導(dǎo)入requests模塊

import json # 導(dǎo)入json模塊

UserUid = 546195 # 定義用戶uid方便后面操作

data = requests.get('https://api.bilibili.com/x/web-interface/card?mid=%d' % (UserUid)) # GET網(wǎng)址獲取內(nèi)容

information = json.loads(data.text) # 輸出數(shù)據(jù)

fans = information['data']['follower'] # 獲取用戶B站粉絲

# fans = information['data']['card']['fans'] #獲取用戶B站粉絲方法二

print(fans)

當(dāng)然以此類推我們還可以獲取其它用戶的信息,如下圖:

information = json.loads(data.text) # 輸出數(shù)據(jù)

name = information['data']['card']['name']

uid = information['data']['card']['mid']

sex = information['data']['card']['sex']

sign = information['data']['card']['sign']

level = information['data']['card']['level_info']['current_level']

Authentication = information['data']['card']['Official']['title']

vip = (information['data']['card']['vip']['vipType'] == 2)

fans = information['data']['follower'] # 獲取用戶B站粉絲

# fans = information['data']['card']['fans'] #獲取用戶B站粉絲方法二

print("BiliBili用戶%s的信息\n"

"用戶名稱:%s\n"

"用戶UID:%s\n"

"用戶性別:%s\n"

"用戶簽名:%s\n"

"用戶等級(jí):%d\n"

"用戶認(rèn)證:%s\n"

"用戶是否為大會(huì)員:%s\n"

"用戶粉絲:%d"

%(name,name,uid,sex,sign,level,Authentication,vip,fans))

import time #導(dǎo)入time模塊

while True:

data = requests.get('https://api.bilibili.com/x/web-interface/card?mid=%d' % (UserUid)) # GET網(wǎng)址獲取內(nèi)容

information = data.json()

fans = information['data']['follower']

print('B站用戶%s(uid:%s)目前粉絲數(shù)量為%d個(gè)。'%(name,uid,fans))

time.sleep(1)

一秒檢測(cè)一次B站用戶的粉絲數(shù)量,

順帶一提 data.json() 相當(dāng)于 json.loads(data.text)

MaxFans變量用于比較用戶粉絲數(shù)是否達(dá)到指定的數(shù)值。

將MaxFans修改成與用戶最近的數(shù)量,并修改代碼:

if fans < MaxFans:

print('B站用戶%s(uid:%s)目前粉絲數(shù)量為%d個(gè),還未達(dá)到用戶指定的%d個(gè)粉絲標(biāo)準(zhǔn)'%(name,uid,fans,MaxFans))

else:

print('*B站用戶%s(uid:%s)目前粉絲數(shù)量為%d個(gè),已經(jīng)達(dá)到用戶指定的%d個(gè)粉絲標(biāo)準(zhǔn)' % (name, uid, fans, MaxFans))

time.sleep(1)

讓我們?cè)偌尤肱c上次數(shù)值的對(duì)比與一開(kāi)始的統(tǒng)計(jì)。

對(duì)代碼進(jìn)行優(yōu)化:

if fans < MaxFans:

if fans-Lastfans > 0:

print('B站用戶%s(uid:%s)目前粉絲數(shù)量為%d個(gè),與上一秒增長(zhǎng)了%d個(gè),還未達(dá)到用戶指定的%d個(gè)粉絲標(biāo)準(zhǔn)。' % (name, uid, fans, fans - Lastfans, MaxFans))

elif fans-Lastfans <0:

print('B站用戶%s(uid:%s)目前粉絲數(shù)量為%d個(gè),與上一秒減少了%d個(gè),還未達(dá)到用戶指定的%d個(gè)粉絲標(biāo)準(zhǔn)。' % (name, uid, fans, Lastfans-fans, MaxFans))

else:

print('B站用戶%s(uid:%s)目前粉絲數(shù)量為%d個(gè),與上一秒相比沒(méi)有增長(zhǎng),還未達(dá)到用戶指定的%d個(gè)粉絲標(biāo)準(zhǔn)。' % (name, uid, fans, MaxFans))

else:

if fans-Lastfans > 0:

print('B站用戶%s(uid:%s)目前粉絲數(shù)量為%d個(gè),與上一秒增長(zhǎng)了%d個(gè),已經(jīng)達(dá)到用戶指定的%d個(gè)粉絲標(biāo)準(zhǔn)。' % (name, uid, fans, fans - Lastfans, MaxFans))

elif fans-Lastfans <0:

print('B站用戶%s(uid:%s)目前粉絲數(shù)量為%d個(gè),與上一秒減少了%d個(gè),已經(jīng)達(dá)到用戶指定的%d個(gè)粉絲標(biāo)準(zhǔn)。' % (name, uid, fans, Lastfans-fans, MaxFans))

else:

print('B站用戶%s(uid:%s)目前粉絲數(shù)量為%d個(gè),與上一秒相比沒(méi)有增長(zhǎng),已經(jīng)達(dá)到用戶指定的%d個(gè)粉絲標(biāo)準(zhǔn)。' % (name, uid, fans, MaxFans))

接下來(lái)我們開(kāi)始添加郵件提醒功能,

在此之前我們先定義一個(gè)變量用于設(shè)定發(fā)郵件的次數(shù)。

我們先來(lái)演示一種Python email模塊使用smtp服務(wù)發(fā)件,

import email.mime.text

import email.utils

import smtplib

Text = "

祝賀B站用戶 %s (uid:%s) 于 %s 達(dá)到 %d 個(gè)粉絲\n" \

"

郵件由程序自動(dòng)發(fā)送不必回復(fù)

" % (name,uid,time.strftime('%Y-%m-%d %H:%M:%S'),fans) #預(yù)要發(fā)送的郵件正文

header = email.mime.text.MIMEText(Text, 'HTML') #開(kāi)始構(gòu)造郵件,傳入正文

header['From'] = email.utils.formataddr(('BiliBili粉絲提醒','422880152@qq.com')) #發(fā)件人,注意formataddr函數(shù)是規(guī)范發(fā)件人格式,要傳入元組

header['To'] = email.utils.formataddr(('我叫以賞', '422880152@qq.com')) #收件人,與發(fā)件人一致

header['Subject'] = u'B站用戶粉絲提醒' #標(biāo)題(主題),注意編碼

SMTP = smtplib.SMTP() #創(chuàng)建SMTP類

SMTP.connect('smtp.qq.com',25) #連接服務(wù)器

SMTP.login('422880152@qq.com','------') #登錄服務(wù)器

SMTP.sendmail('422880152@qq.com','422880152@qq.com',header.as_string()) #發(fā)送郵件 發(fā)件人 收件人 header.as_string()函數(shù)是將構(gòu)造好的郵件進(jìn)行轉(zhuǎn)化為文本

SMTP.close() #斷開(kāi)連接

如果配置正常應(yīng)該會(huì)收到這樣的郵件,

再把判斷提醒次數(shù)的判斷寫(xiě)進(jìn)去

tip要在循環(huán)前先定義。

這樣就完成了,再加一個(gè)退出代碼

當(dāng)然你對(duì)于一些無(wú)法發(fā)送郵件的系統(tǒng),請(qǐng)去查看我上次的文章!

總結(jié)

以上是生活随笔為你收集整理的python b站 礼物_[我叫以赏]Python获取B站UP主粉丝数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲va在线∨a天堂va欧美va | 欧美在线观看一区二区三区 | 精品熟妇视频一区二区三区 | 在线伊人 | 精品一区二区三区精华液 | 推特裸体gay猛交gay | 亚洲天堂91 | 亚州三级| 男女猛烈无遮挡免费视频 | 欧美人吸奶水吃奶水 | 国产成人精品亚洲日本在线观看 | 婷婷久 | 992tv在线成人免费观看 | 亚洲手机看片 | 三大队在线观看 | av黄在线 | 久精品国产| 男同av在线观看一区二区三区 | 青娱乐国产盛宴 | 欧美二级片 | 国产手机在线视频 | 亚洲欧洲综合av | 热久久精品免费视频 | 欧美人体一区二区三区 | 亚洲中字在线 | 入禽太深免费视频 | 欧美无遮挡高潮床戏 | 国产高潮失禁喷水爽到抽搐 | 欧美精品一 | 福利社午夜影院 | 91精品人妻一区二区三区 | 久久国产一二三 | aaaaa一级片 色图社区 | 中文在线a∨在线 | 亚洲夜夜夜 | 午夜视频观看 | 日韩精品一区二区在线视频 | 久久精品一区二 | 日本色视 | 色网站在线免费观看 | 成人午夜视频在线免费观看 | 欧美性猛交xxx乱久交 | 麻豆免费视频 | 欧美国产在线视频 | 日韩一片 | 欧美性猛交 xxxx | 亚洲欧美校园春色 | 日韩精品aaa | 久久性| 全程偷拍露脸中年夫妇 | 69色综合 | 一本色道综合久久欧美日韩精品 | 国模无码国产精品视频 | 天天躁夜夜躁狠狠躁 | 91看片免费看 | 二十四小时在线更新观看 | 国产精品sm| h色视频在线观看 | 我看黄色一级片 | 淫片在线 | 亚洲三级影视 | 97午夜| 福利电影一区 | 91黄免费| 日韩在观看线 | 91久久国产 | 青草成人免费视频 | 美女视频在线免费观看 | 亚洲成人精品在线观看 | 99久久久无码国产精品免费麻豆 | 久久美女精品 | 成人免费视频观看 | 久久久噜噜噜www成人网 | 国产麻豆交换夫妇 | 草草网址 | 亚洲AV成人午夜无码精品久久 | 日本69熟| 亚洲一区二区三区视频在线 | 福利精品在线 | 亚洲免费毛片 | 国产一区二区三区视频在线 | 国模视频一区二区 | a无一区二区三区 | 亚洲精品久久久久久久久久 | 中文字幕精品无码亚 | 日韩午夜激情 | 中文字幕看片 | 全黄一级播放 | 国产黄色高清 | 变态另类丨国产精品 | 森泽佳奈av | 伊伊成人 | 国产免费又粗又猛又爽 | 日韩三区四区 | 日本内谢少妇xxxxx少交 | 婷婷爱五月 | 国产激情对白 | 日韩成人黄色片 | 女人舌吻男人茎视频 |