使用Python分析移動語音賬單

2021-07-26 10:45:25 字數 2689 閱讀 9651

通過firefox的web控制台檢視html的標籤資訊,確定了需要抓取的內容格式:

之後通過python的beautifulsoup模組來對檔案內容進行解析和重要資料的提取

python**的第乙個函式主要是對html檔案讀取以後解析相關的資料,以**號碼為key構造乙個dict物件來儲存資料,這裡需要提取的是對於指定號碼的主叫和被叫時間的記錄,所以選擇了乙個list來儲存資料,list物件的第一位存下主叫時間,第二位存下被叫時間,**一角如下:

#!/usr/bin/python

#coding:utf-8

from bs4 import beautifulsoup

'''import sys

reload(sys)

sys.setdefaultencoding('utf-8')'''

#解析賬單html檔案,返回資訊dict物件,key為**號碼,value為乙個list物件,第一位是主叫時間,第二位是被叫時間

def parsehtml(filename):

soup = beautifulsoup(open(filename),'lxml')

soup1 = beautifulsoup("主叫 ",'lxml')

tmp = soup1.find_all('td')

flag1 = str(unicode(tmp[0].string))

soup2 = beautifulsoup('被叫 ','lxml')

tmp = soup2.find_all('td')

flag2 = str(unicode(tmp[0].string))

tr_tags = soup.find_all('tr',class_='content2')

infos = dict()

for tr_tag in tr_tags:

info_list = list()

td_tags = tr_tag.find_all('td',class_='talbecontent1')

if len(td_tags) <= 3:

continue

for td_tag in td_tags:

tele = str(info_list[5])

call_type = str(info_list[4])

call_time = info_list[2]

times = splitetime(call_time)

if tele in infos.keys():

if call_type == flag1:

infos[tele][0] += times

else:

infos[tele][1] += times

else:

time_list = list([0,0])

infos[tele] = time_list

if str(call_type) == flag1:

infos[tele][0] = times

else:

infos[tele][1] = times

return infos

#將字元型別的通話時間轉換為秒為單位,返回int物件

def splitetime(time_str):

hour_list = time_str.split('小時')

hour = 0

minute_string = ''

if len(hour_list) == 1:

minute_string = hour_list[0]

else:

minute_string = hour_list[1]

hour = int(hour_list[0])

#print hour

minute_list = minute_string.split('分')

minute = 0

sec_string = ''

if len(minute_list) == 1:

sec_string = minute_list[0]

else:

sec_string = minute_list[1]

minute = int(minute_list[0])

#print minute

sec_list = sec_string.split('秒')

通過執行指令碼以後可以看到本月通訊排名前三位的是哪幾個號碼,這裡僅提供乙個簡單的例項,如果大家有興趣,可以拿到資料以後做其他方面的分析,最後也可以通過圖表形式直觀的顯示出來,如果有心的話還可以分析每個月的賬單,將資料存入自己個人的資料庫中,方便以後有需要的時候讀取來分析。

博主自己的檔案放在github上,位址如下:luuuyi/analysis_bill

移動端web頁面使用字型分析

一直不知道手機端用的什麼字型,只是覺得類似雅黑,直到有一次設計師問到設計移動web頁面該用什麼字型才嚴肅地想起這個問題。前人已栽樹,後人我就直接轉來吧 回想2年前剛開始接觸手機專案,接到psd稿後,發現視覺設計師們喜歡用微軟雅黑作為中文字型進行設計,於是我寫頁面的時候也定義 font family ...

使用cProfile分析Python程式效能

cprofile 基於lsprof的用c語言實現的擴充套件應用,執行開銷比較合理,適合分析執行時間較長的程式,推薦使用這個模組 profile 純python實現的效能分析模組,介面和cprofile一致。但在分析程式時增加了很大的執行開銷。不過,如果你想擴充套件profiler的功能,可以通過繼承...

Python 中 with 的使用分析

通常在python中使用with語句的地方在檔案的讀寫,它的作用是即使出現bug也可以自動關閉檔案釋放資源。而with的實質是上下文管理器,想要通過with使用的物件必須包含 enter 方法和 exit 方法。class a def enter self a 1 return a def exit...