日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产日本精品 | 成人人伦一区二区三区 | 日韩国产精品一区 | 精品人妻一区二区三区浪潮在线 | 久久精品美乳 | 亚洲怡春院 | 乱日视频 | 久久国产一 | 黄页网站在线 | 欧洲精品一区二区 | 亚洲精品h| 国产精品羞羞答答在线 | 色男人影院 | 亚洲素人在线 | 人妻少妇无码精品视频区 | 69视频在线播放 | 日韩专区视频 | 欧美日韩国产成人 | 老妇裸体性激交老太视频 | 乱短篇艳辣500篇h文最新章节 | 久久男人网 | 黄色网页免费观看 | 亚洲欧美一区二区三 | 亚洲综合p | 在线播放av网站 | 国产视频xxxx| 婷婷丁香久久 | 久久精品久久精品久久 | 国产黄片毛片 | 91免费播放 | 日韩欧美a级片 | 婷婷俺去也| 日本成人在线不卡 | 欧美日韩亚洲成人 | 成长快手短视频在线观看 | www.69视频 | 午夜网站在线 | 黄色一级片免费在线观看 | 精品少妇人妻av一区二区三区 | 欧美三级在线观看视频 | 91免费国产视频 | 91在线资源 | 24小时日本在线www免费的 | 久久这里只有精品首页 | 怡春院国产| 欧美日韩一区二区久久 | 99热精品在线观看 | 高清无码一区二区在线观看吞精 | 久久一二三四区 | 亚洲热在线 | √天堂资源地址在线官网 | 精品人妻午夜一区二区三区四区 | 国产aⅴ| 真人毛片视频 | 久久国产精品久久国产精品 | 中文字幕久久综合 | 国产精品久久毛片av大全日韩 | 欧美不卡视频在线观看 | 久久久无码精品亚洲无少妇 | 欧美性大战久久久 | 狠狠五月 | 国产精品无码一区二区三区免费 | 九九视频在线播放 | 日韩精品免费一区二区三区竹菊 | eeuss鲁片一区二区三区在线观看 | 国产123在线 | 成人免费区一区二区三区 | 六月激情综合网 | 欧美一区二区三区精品 | 亚洲色图视频在线观看 | 国产精品国产三级国产在线观看 | 日本不卡一区视频 | 天堂网在线最新版www中文网 | 欧美激情国产精品 | 最近中文字幕免费 | 黄色aaa毛片| 色欲久久久天天天综合网精品 | 亚洲精品无码专区 | 亚洲精品无码不卡在线播he | 激情二区 | 久久99久久久久 | 亚洲视频网址 | 日韩在线一二三 | www.夜夜骑| 波多野结衣丝袜 | 黄色69| 色欲久久久天天天综合网 | 欧美一级免费观看 | 窝窝午夜精品一区二区 | 日本裸体动漫 | 97人人看| 桃色综合网| 五月婷婷丁香在线 | 丁香五香天堂 | 999久久久久久久久6666 | 制服师生在线 | 国产精品xxx视频 | 激情图片网站 | 在线青草|