Python獲取觀眾資料

2021-10-05 16:34:16 字數 3332 閱讀 2981

python爬蟲原理寫的乙個簡單獲取觀眾資料的**,用tkinter做了個簡單的gui介面,然後用pyinstaller編譯為exe可執行檔案,有需要的可以根據自己需求修改.

from tkinter import

*import urllib.request

import tkinter.messagebox

from lxml import etree

import json

import time

import re

root=tk(

)root.title(

"獲取氧吧直播間觀眾資料"

)label(root,text=

"請輸入直播間號碼"

).grid(row=

0,column=

0,sticky=w)

v1=strin**ar(

)e1=entry(root,textvariable=v1,width=30,

)e1.grid(row=

0,column=

0,padx=

105,pady=

5,sticky=w)

sb=scrollbar(root,orient=vertical)

sb.grid(row=

1,column=

1,columnspan=

3,padx=

0,pady=

5,sticky=ns)

lb = listbox(root,width=

68,height=

41,yscrollcommand=sb.

set,setgrid=

true

,selectmode=extended)

lb.grid(row=

1,column=

0,padx=

5,pady=

5,columnspan=

5,sticky=w)

sb.config(command=lb.yview)

root.geometry(

"8x41+750+100"

)def

getusertlist()

: txt=v1.get()if

not txt.isdigit():

tkinter.messagebox.showinfo(

"請輸入"

,"請輸入房間號"

)else

: url =

''%(v1.get())

r = urllib.request.urlopen(url)

htmldata = r.read(

) html = etree.html(htmldata)

nickname = html.xpath(

'//head/title/text()'

) content = html.xpath(

'//script/text()'

) p = r'[0-9]'

pid = re.findall(p, content[2]

) nowtime = time.time(

) nowtime =

int(nowtime)

listurl =

''%(pid[0]

, nowtime)

userdata = urllib.request.urlopen(listurl)

userlist = userdata.read(

) jsondata = json.loads(userlist.decode(

'utf-8'))

lb.insert(end,

"***********************************==="

, nickname[0]

,"***********************************==="

,"觀眾總數:%s"

%(jsondata[

'total'])

,"遊客總數:%s"

%jsondata[

'visitor'],

%jsondata[

'guardonline'],

"登入使用者總數:%s"

%(jsondata[

'total'

]- jsondata[

'visitor'])

,"***********************************==="

,"登入使用者資料"

,"***********************************==="

)for fans in jsondata[

'viewer']:

lb.insert(end,

"使用者id:%s"

%fans[

'id'],

"使用者暱稱:%s"

%fans[

'name'],

"使用者等級:%s"

%fans[

'levellist'][

0]['levelname'],

"使用者城市:%s"

%fans[

'city'],

"***********************************==="

)def

removedata()

: lb.delete(

0,end)

e1.delete(

0,end)

button(root,text=

"獲取資料"

,width=

10,command=getusertlist)

.grid(row=

0,column=

0,padx=

330,pady=

5,sticky=w)

button(root,text=

"清除"

python求眾數程式 python求眾數問題例項

問題描述 多重集中重數最大的元素稱為眾數.就是乙個可以有重複元素的集合,在這個集合中重複的次數最多的那個數就叫它的眾數.如s 1,2,2,2,3,5 重數是2,其重數為3 例項 如下 list num list num count 0 dict num 從檔案讀入,檔案第一行為集合中元素的個數,以後...

python計算眾數

def get mode list 計算眾數 引數 list 列表型別,待分析資料 返回值 grade mode 列表型別,待分析資料的眾數 list set set list 取list的集合,去除重複元素 frequency dict for i in list set 遍歷每乙個list的元素...

Python獲取資料

1 raw input raw input 函式用來獲取從鍵盤上獲取一行文字,將以字串的形式返回使用者輸入的一切內容,意思就是比如從鍵盤輸入的是數字也將以字串的形式獲取。2 imput input 把讀入的資料預設為python表示式,對於input 函式,輸入字串時要用引號將其轉化為合法的pyth...