婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python爬取用戶觀影數(shù)據(jù)并分析用戶與電影之間的隱藏信息!

Python爬取用戶觀影數(shù)據(jù)并分析用戶與電影之間的隱藏信息!

熱門標簽:銀川電話機器人電話 企業(yè)彩鈴地圖標注 煙臺電話外呼營銷系統(tǒng) 上海正規(guī)的外呼系統(tǒng)最新報價 長春極信防封電銷卡批發(fā) 外賣地址有什么地圖標注 電銷機器人錄音要學習什么 預覽式外呼系統(tǒng) 如何地圖標注公司

一、前言

二、爬取觀影數(shù)據(jù)

https://movie.douban.com/

在『豆瓣』平臺爬取用戶觀影數(shù)據(jù)。

爬取用戶列表

網(wǎng)頁分析

為了獲取用戶,我選擇了其中一部電影的影評,這樣可以根據(jù)評論的用戶去獲取其用戶名稱(后面爬取用戶觀影記錄只需要『用戶名稱』)。

https://movie.douban.com/subject/24733428/reviews?start=0

url中start參數(shù)是頁數(shù)(page*20,每一頁20條數(shù)據(jù)),因此start=0、20、40...,也就是20的倍數(shù),通過改變start參數(shù)值就可以獲取這4614條用戶的名稱。

查看網(wǎng)頁的標簽,可以找到『用戶名稱』值對應的標簽屬性。

編程實現(xiàn)

i=0
url = "https://movie.douban.com/subject/24733428/reviews?start=" + str(i * 20)
r = requests.get(url, headers=headers)
r.encoding = 'utf8'
s = (r.content)
selector = etree.HTML(s)
 
 
for item in selector.xpath('//*[@class="review-list  "]/div'):
    userid = (item.xpath('.//*[@class="main-hd"]/a[2]/@href'))[0].replace("https://www.douban.com/people/","").replace("/", "")
    username = (item.xpath('.//*[@class="main-hd"]/a[2]/text()'))[0]
    print(userid)
    print(username)
    print("-----")

爬取用戶的觀影記錄

上一步爬取到『用戶名稱』,接著爬取用戶觀影記錄需要用到『用戶名稱』。

網(wǎng)頁分析

#https://movie.douban.com/people/{用戶名稱}/collect?start=15sort=timerating=allfilter=allmode=grid
https://movie.douban.com/people/mumudancing/collect?start=15sort=timerating=allfilter=allmode=grid

通過改變『用戶名稱』,可以獲取到不同用戶的觀影記錄。

url中start參數(shù)是頁數(shù)(page*15,每一頁15條數(shù)據(jù)),因此start=0、15、30...,也就是15的倍數(shù),通過改變start參數(shù)值就可以獲取這1768條觀影記錄稱。

查看網(wǎng)頁的標簽,可以找到『電影名』值對應的標簽屬性。

編程實現(xiàn)

url = "https://movie.douban.com/people/mumudancing/collect?start=15sort=timerating=allfilter=allmode=grid"
r = requests.get(url, headers=headers)
r.encoding = 'utf8'
s = (r.content)
selector = etree.HTML(s)
for item in selector.xpath('//*[@class="grid-view"]/div[@class="item"]'):
    text1 = item.xpath('.//*[@class="title"]/a/em/text()')
    text2 = item.xpath('.//*[@class="title"]/a/text()')
    text1 = (text1[0]).replace(" ", "")
    text2 = (text2[1]).replace(" ", "").replace("\n", "")
    print(text1+text1)
    print("-----")

保存到excel

定義表頭

# 初始化execl表
def initexcel(filename):
    # 創(chuàng)建一個workbook 設置編碼
    workbook = xlwt.Workbook(encoding='utf-8')
    # 創(chuàng)建一個worksheet
    worksheet = workbook.add_sheet('sheet1')
    workbook.save(str(filename)+'.xls')
    ##寫入表頭
    value1 = [["用戶", "影評"]]
    book_name_xls = str(filename)+'.xls'
    write_excel_xls_append(book_name_xls, value1)

excel表有兩個標題(用戶, 影評)

寫入excel

# 寫入execl
def write_excel_xls_append(path, value):
    index = len(value)  # 獲取需要寫入數(shù)據(jù)的行數(shù)
    workbook = xlrd.open_workbook(path)  # 打開工作簿
    sheets = workbook.sheet_names()  # 獲取工作簿中的所有表格
    worksheet = workbook.sheet_by_name(sheets[0])  # 獲取工作簿中所有表格中的的第一個表格
    rows_old = worksheet.nrows  # 獲取表格中已存在的數(shù)據(jù)的行數(shù)
    new_workbook = copy(workbook)  # 將xlrd對象拷貝轉化為xlwt對象
    new_worksheet = new_workbook.get_sheet(0)  # 獲取轉化后工作簿中的第一個表格
    for i in range(0, index):
        for j in range(0, len(value[i])):
            new_worksheet.write(i+rows_old, j, value[i][j])  # 追加寫入數(shù)據(jù),注意是從i+rows_old行開始寫入
    new_workbook.save(path)  # 保存工作簿

定義了寫入excel函數(shù),這樣爬起每一頁數(shù)據(jù)時候調用寫入函數(shù)將數(shù)據(jù)保存到excel中。

最后采集了44130條數(shù)據(jù)(原本是4614個用戶,每個用戶大約有500~1000條數(shù)據(jù),預計400萬條數(shù)據(jù))。但是為了演示分析過程,只爬取每一個用戶的前30條觀影記錄(因為前30條是最新的)。

最后這44130條數(shù)據(jù)會在下面分享給大家。

三、數(shù)據(jù)分析挖掘

讀取數(shù)據(jù)集

def read_excel():
    # 打開workbook
    data = xlrd.open_workbook('豆瓣.xls')
    # 獲取sheet頁
    table = data.sheet_by_name('sheet1')
    # 已有內容的行數(shù)和列數(shù)
    nrows = table.nrows
    datalist=[]
    for row in range(nrows):
        temp_list = table.row_values(row)
        if temp_list[0] != "用戶" and temp_list[1] != "影評":
            data = []
            data.append([str(temp_list[0]), str(temp_list[1])])
            datalist.append(data)
    return datalist

從豆瓣.xls中讀取全部數(shù)據(jù)放到datalist集合中。

分析1:電影觀看次數(shù)排行

###分析1:電影觀看次數(shù)排行
def analysis1():
    dict ={}
    ###從excel讀取數(shù)據(jù)
    movie_data = read_excel()
    for i in range(0, len(movie_data)):
        key = str(movie_data[i][0][1])
        try:
            dict[key] = dict[key] +1
        except:
            dict[key]=1
    ###從小到大排序
    dict = sorted(dict.items(), key=lambda kv: (kv[1], kv[0]))
    name=[]
    num=[]
    for i in range(len(dict)-1,len(dict)-16,-1):
        print(dict[i])
        name.append(((dict[i][0]).split("/"))[0])
        num.append(dict[i][1])
    plt.figure(figsize=(16, 9))
    plt.title('電影觀看次數(shù)排行(高->低)')
    plt.bar(name, num, facecolor='lightskyblue', edgecolor='white')
    plt.savefig('電影觀看次數(shù)排行.png')

分析由于用戶信息來源于 『心靈奇旅』 評論,因此其用戶觀看量最大。最近的熱播電影中,播放量排在第二的是 『送你一朵小紅花』,信條和拆彈專家2也緊跟其后。

分析2:用戶畫像(用戶觀影相同率最高)

###分析2:用戶畫像(用戶觀影相同率最高)
def analysis2():
    dict = {}
    ###從excel讀取數(shù)據(jù)
    movie_data = read_excel()
 
 
    userlist=[]
    for i in range(0, len(movie_data)):
        user = str(movie_data[i][0][0])
        moive = (str(movie_data[i][0][1]).split("/"))[0]
        #print(user)
        #print(moive)
 
 
        try:
            dict[user] = dict[user]+","+str(moive)
        except:
            dict[user] =str(moive)
            userlist.append(user)
 
 
    num_dict={}
    # 待畫像用戶(取第一個)
    flag_user=userlist[0]
    movies = (dict[flag_user]).split(",")
    for i in range(0,len(userlist)):
        #判斷是否是待畫像用戶
        if flag_user != userlist[i]:
            num_dict[userlist[i]]=0
            #待畫像用戶的所有電影
            for j in range(0,len(movies)):
                #判斷當前用戶與待畫像用戶共同電影個數(shù)
                if movies[j] in dict[userlist[i]]:
                    # 相同加1
                    num_dict[userlist[i]] = num_dict[userlist[i]]+1
    ###從小到大排序
    num_dict = sorted(num_dict.items(), key=lambda kv: (kv[1], kv[0]))
    #用戶名稱
    username = []
    #觀看相同電影次數(shù)
    num = []
    for i in range(len(num_dict) - 1, len(num_dict) - 9, -1):
        username.append(num_dict[i][0])
        num.append(num_dict[i][1])
 
 
    plt.figure(figsize=(25, 9))
    plt.title('用戶畫像(用戶觀影相同率最高)')
    plt.scatter(username, num, color='r')
    plt.plot(username, num)
    plt.savefig('用戶畫像(用戶觀影相同率最高).png')

分析

以用戶 『mumudancing』 為例進行用戶畫像

1.從圖中可以看出,與用戶 『mumudancing』 觀影相同率最高的是:“請帶我回布拉格”,其次是“李校尉”。

2.用戶:'絕命紙牌', '笨小孩', '私享史', '溫衡', '沈唐', '修左',的觀影相同率****相同。

分析3:用戶之間進行電影推薦

###分析3:用戶之間進行電影推薦(與其他用戶同時被觀看過)
def analysis3():
    dict = {}
    ###從excel讀取數(shù)據(jù)
    movie_data = read_excel()
 
 
    userlist=[]
    for i in range(0, len(movie_data)):
        user = str(movie_data[i][0][0])
        moive = (str(movie_data[i][0][1]).split("/"))[0]
        #print(user)
        #print(moive)
 
 
        try:
            dict[user] = dict[user]+","+str(moive)
        except:
            dict[user] =str(moive)
            userlist.append(user)
 
 
    num_dict={}
    # 待畫像用戶(取第2個)
    flag_user=userlist[0]
    print(flag_user)
    movies = (dict[flag_user]).split(",")
    for i in range(0,len(userlist)):
        #判斷是否是待畫像用戶
        if flag_user != userlist[i]:
            num_dict[userlist[i]]=0
            #待畫像用戶的所有電影
            for j in range(0,len(movies)):
                #判斷當前用戶與待畫像用戶共同電影個數(shù)
                if movies[j] in dict[userlist[i]]:
                    # 相同加1
                    num_dict[userlist[i]] = num_dict[userlist[i]]+1
    ###從小到大排序
    num_dict = sorted(num_dict.items(), key=lambda kv: (kv[1], kv[0]))
 
 
    # 去重(用戶與觀影率最高的用戶兩者之間重復的電影去掉)
    user_movies = dict[flag_user]
    new_movies = dict[num_dict[len(num_dict)-1][0]].split(",")
    for i in range(0,len(new_movies)):
        if new_movies[i] not in user_movies:
            print("給用戶("+str(flag_user)+")推薦電影:"+str(new_movies[i]))

分析

以用戶 『mumudancing』 為例,對用戶之間進行電影推薦

1.根據(jù)與用戶 『mumudancing』 觀影率最高的用戶(A)進行進行關聯(lián),然后獲取用戶(A)的全部觀影記錄

2.將用戶(A)的觀影記錄推薦給用戶 『mumudancing』(去掉兩者之間重復的電影)。

分析4:電影之間進行電影推薦

###分析4:電影之間進行電影推薦(與其他電影同時被觀看過)
def analysis4():
    dict = {}
    ###從excel讀取數(shù)據(jù)
    movie_data = read_excel()
 
 
    userlist=[]
    for i in range(0, len(movie_data)):
        user = str(movie_data[i][0][0])
        moive = (str(movie_data[i][0][1]).split("/"))[0]
        try:
            dict[user] = dict[user]+","+str(moive)
        except:
            dict[user] =str(moive)
            userlist.append(user)
 
 
    movie_list=[]
    # 待獲取推薦的電影
    flag_movie = "送你一朵小紅花"
    for i in range(0,len(userlist)):
        if flag_movie in dict[userlist[i]]:
             moives = dict[userlist[i]].split(",")
             for j in range(0,len(moives)):
                 if moives[j] != flag_movie:
                     movie_list.append(moives[j])
 
 
    data_dict = {}
    for key in movie_list:
        data_dict[key] = data_dict.get(key, 0) + 1
 
 
    ###從小到大排序
    data_dict = sorted(data_dict.items(), key=lambda kv: (kv[1], kv[0]))
    for i in range(len(data_dict) - 1, len(data_dict) -16, -1):
            print("根據(jù)電影"+str(flag_movie)+"]推薦:"+str(data_dict[i][0]))

分析

以電影 『送你一朵小紅花』 為例,對電影之間進行電影推薦

1.獲取觀看過 『送你一朵小紅花』 的所有用戶,接著獲取這些用戶各自的觀影記錄。

2.將這些觀影記錄進行統(tǒng)計匯總(去掉“送你一朵小紅花”),然后進行從高到低進行排序,最后可以獲取到與電影 『送你一朵小紅花』 關聯(lián)度最高排序的集合。

3.將關聯(lián)度最高的前15部電影給用戶推薦。

四、總結

1.分析爬取豆瓣平臺數(shù)據(jù)思路,并編程實現(xiàn)。

2.對爬取的數(shù)據(jù)進行分析(電影觀看次數(shù)排行、用戶畫像、用戶之間進行電影推薦、電影之間進行電影推薦)

到此這篇關于Python爬取用戶觀影數(shù)據(jù)并分析用戶與電影之間的隱藏信息!的文章就介紹到這了,更多相關Python爬取數(shù)據(jù)并分析內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python爬蟲之Appium爬取手機App數(shù)據(jù)及模擬用戶手勢
  • Python中Cookies導出某站用戶數(shù)據(jù)的方法
  • Python編寫檢測數(shù)據(jù)庫SA用戶的方法
  • 如何用Python數(shù)據(jù)可視化來分析用戶留存率

標簽:湖北 盤錦 佳木斯 宜昌 珠海 潮州 上饒 西寧

巨人網(wǎng)絡通訊聲明:本文標題《Python爬取用戶觀影數(shù)據(jù)并分析用戶與電影之間的隱藏信息!》,本文關鍵詞  Python,爬取,用戶,觀影,數(shù)據(jù),;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python爬取用戶觀影數(shù)據(jù)并分析用戶與電影之間的隱藏信息!》相關的同類信息!
  • 本頁收集關于Python爬取用戶觀影數(shù)據(jù)并分析用戶與電影之間的隱藏信息!的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久久久久久久久久99999| 国产日韩欧美麻豆| 91美女片黄在线观看| 91看片淫黄大片一级在线观看| 99久久精品99国产精品| 欧美色区777第一页| 日韩精品一区二区在线观看| 国产日韩欧美精品综合| 亚洲主播在线播放| 精品影视av免费| bt欧美亚洲午夜电影天堂| 欧美三级中文字幕| 国产女人aaa级久久久级| 亚洲自拍偷拍麻豆| 国产精品一区二区三区四区| 色婷婷国产精品久久包臀| 欧美日韩国产中文| 欧美一级日韩不卡播放免费| 中文字幕亚洲欧美在线不卡| 亚洲综合成人在线视频| 国产精品一区二区果冻传媒| 欧美亚一区二区| 久久久久国产精品厨房| 一区二区不卡在线视频 午夜欧美不卡在| 综合久久综合久久| 日韩电影在线观看电影| 99久久精品免费看国产免费软件| 日韩丝袜美女视频| 日本一区二区三区免费乱视频 | 国产精品电影院| 五月天中文字幕一区二区| 国产精品一区2区| 在线观看一区日韩| 国产精品成人免费精品自在线观看| 秋霞av亚洲一区二区三| 欧美综合在线视频| 18成人在线观看| 国产高清久久久久| 久久一日本道色综合| 麻豆成人av在线| 欧美一区二区精品久久911| 亚洲精品第1页| 91老师片黄在线观看| 中文乱码免费一区二区| 久久精品国产免费看久久精品| 在线观看一区二区精品视频| 日韩毛片视频在线看| 99re这里只有精品视频首页| 国产精品欧美一区二区三区| 经典三级一区二区| 日韩欧美一区在线| 亚洲在线成人精品| 在线日韩一区二区| 国产精品一区二区在线观看不卡 | 中文字幕一区二区在线观看| 蓝色福利精品导航| 日韩三级av在线播放| 免费在线观看一区二区三区| 欧美日韩精品一区二区| 亚洲狠狠爱一区二区三区| 色网站国产精品| 亚洲精品高清在线| 欧美日韩国产三级| 日本欧美肥老太交大片| 日韩欧美成人一区| 国产精品自在在线| 中文字幕一区二区三区精华液 | 91在线视频网址| 一区二区三国产精华液| 91福利精品第一导航| 亚洲国产精品一区二区久久恐怖片| 欧美性感一类影片在线播放| 首页亚洲欧美制服丝腿| 亚洲精品一区二区三区蜜桃下载| 精品一区二区三区久久| 欧美激情综合五月色丁香小说| 国产精品亚洲综合一区在线观看| 国产农村妇女毛片精品久久麻豆| 99re成人在线| 亚洲成av人片一区二区| 日韩精品一区二区三区在线播放| 激情六月婷婷综合| 中日韩av电影| 精品视频一区二区不卡| 美女视频免费一区| 久久久午夜精品理论片中文字幕| 91在线精品一区二区| 亚州成人在线电影| 欧美一区二区在线免费播放| 国产成人精品影视| 亚洲精品美国一| 日韩欧美精品在线视频| 成人深夜视频在线观看| 亚洲一区免费在线观看| 亚洲精品在线观看视频| 在线免费观看不卡av| 日本sm残虐另类| 国产欧美综合在线| 欧美亚洲精品一区| 国产91富婆露脸刺激对白| 亚洲国产一区二区三区青草影视| 精品国产网站在线观看| 欧美无乱码久久久免费午夜一区 | 久久精品综合网| 欧美中文字幕久久| 国产乱码精品1区2区3区| 伊人色综合久久天天| 久久久久久黄色| 欧美精选午夜久久久乱码6080| 精品美女一区二区| 色综合婷婷久久| 精品综合久久久久久8888| 亚洲一区免费在线观看| 国产精品看片你懂得| 欧美一级二级在线观看| 91小视频在线| 在线精品亚洲一区二区不卡| 国产精品久久综合| 波多野结衣一区二区三区| 色综合婷婷久久| 久久午夜老司机| 日韩国产高清影视| 精品国产乱子伦一区| 成人av影视在线观看| 欧美一区二区免费视频| 狠狠色丁香久久婷婷综| 国产精品美女一区二区三区| 精品一区二区三区在线观看国产| 国产福利精品一区| 久久一夜天堂av一区二区三区| 视频一区视频二区中文字幕| 欧美四级电影在线观看| 成人在线视频一区| 国产麻豆9l精品三级站| 麻豆91在线观看| 奇米777欧美一区二区| 五月激情综合网| 日韩一区二区免费在线电影 | 中文字幕日本乱码精品影院| 欧美一区二区播放| 欧美日韩国产影片| 精品视频在线视频| 欧美日韩一区二区三区四区五区| 欧美特级限制片免费在线观看| 奇米精品一区二区三区在线观看一| 一区二区三区四区蜜桃| 亚洲三级在线看| 亚洲欧美在线高清| 亚洲美女视频在线| 亚洲午夜精品在线| 亚洲成人动漫一区| 视频一区在线视频| 美洲天堂一区二卡三卡四卡视频| 日韩经典一区二区| 奇米精品一区二区三区四区| 蜜桃免费网站一区二区三区| 久久不见久久见中文字幕免费| 国产一区二区在线免费观看| 成人性生交大片免费看视频在线| zzijzzij亚洲日本少妇熟睡| 国产精品久久久久影视| 亚洲色图欧洲色图| 日韩精品一卡二卡三卡四卡无卡| 日韩精品亚洲专区| 国产精品一区二区久激情瑜伽| 丁香婷婷综合激情五月色| 93久久精品日日躁夜夜躁欧美| 欧美午夜寂寞影院| 日韩精品一区二区三区三区免费 | 一区二区三区资源| 午夜精品123| 国产在线视频一区二区| 国产高清无密码一区二区三区| 91色porny| 正在播放亚洲一区| 欧美α欧美αv大片| 成人福利在线看| 蜜桃视频第一区免费观看| 激情综合亚洲精品| 成人一级片网址| 欧美成人三级在线| 欧美性生活久久| 欧美揉bbbbb揉bbbbb| 91麻豆精品国产91久久久使用方法| 欧美一区二区在线不卡| 欧美精品一区二区三区久久久| 自拍视频在线观看一区二区| 亚洲成人激情综合网| 成人伦理片在线| 日韩色在线观看| 国产精品美女久久久久久久| 亚洲国产视频一区二区| 国产激情视频一区二区三区欧美 | 久久久精品tv| 视频一区欧美精品| 国产·精品毛片| 欧美久久一区二区| 亚洲视频在线观看三级| 激情六月婷婷综合| 欧美一区二区三区系列电影|