亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于python的電影評分網(wǎng)頁數(shù)據(jù)爬取

        2022-08-08 07:56:26唐孝國郭俊亮
        黑龍江科學 2022年14期
        關(guān)鍵詞:網(wǎng)頁解析函數(shù)

        王 恒,唐孝國,郭俊亮

        (銅仁職業(yè)技術(shù)學院,貴州 銅仁 554300)

        0 引言

        為了解觀眾的電影喜好,找到了具有代表性的電影網(wǎng)站進行了系統(tǒng)分析。若想要獲取豆瓣網(wǎng)站中電影評分Top250的數(shù)據(jù),可直接登錄豆瓣網(wǎng)址,這種操作雖能得到目標數(shù)據(jù),但需要耗費大量的時間和精力,并有可能遺漏某些數(shù)據(jù),為此通過編寫python程序進行網(wǎng)頁爬取和分析。較于人工搜集數(shù)據(jù),python爬取程序具有更為快速、準確及方便的特點,分析后的數(shù)據(jù)還可以很好地運用到此后的數(shù)據(jù)可視化分析中。觀眾的電影喜好主要可以通過搜集電影排行榜中排名靠前的電影發(fā)布地、電影題材及電影評分等信息得知。基于python網(wǎng)絡(luò)爬取程序,通過搜集豆瓣Top250電影的發(fā)布地和題材等數(shù)據(jù),將得到的數(shù)據(jù)匯入Excle表格,進行可視化分析。其中,各類屬性中的發(fā)布地屬性對于某個電影來說是唯一的,其主要發(fā)布地的比例可以運用餅圖進行展示,但對于電影題材屬性則運用詞云圖來展示最為合適。

        對豆瓣網(wǎng)上的電影數(shù)據(jù)爬取分析是一個系統(tǒng)化過程,分為如下幾步:

        1 構(gòu)造函數(shù)

        數(shù)據(jù)爬取首先要構(gòu)造爬取一個網(wǎng)頁內(nèi)容的函數(shù)askUrl():返回值為html def askUrl(url):

        head={

        ″User-Agent″: ″Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36″

        } #模擬瀏覽器訪問網(wǎng)頁

        request = urllib.request.Request(url,headers=head)

        html =″″

        try: #try: except為錯誤預(yù)處理

        response = urllib.request.urlopen(request) #利用urllib庫中的request函數(shù)發(fā)送請求,命名為response。

        html = response.read().decode(″utf-8″) #對上面得到的response進行讀取,命名為html。

        #print(html)

        except urllib.error.URLError as ue:

        if hasattr(ue,″code″):

        print(ue.code)

        if hasattr(ue,″reason″):

        print(ue.reason)

        return html #最后返回html。

        觀察豆瓣影評Top250網(wǎng)站,發(fā)現(xiàn)該網(wǎng)站一頁共有25條電影數(shù)據(jù),共10頁,因而利用for循環(huán)將函數(shù)askURL()運行10次,即可得到爬取到豆瓣影評Top250的全部數(shù)據(jù)。

        2 獲取數(shù)據(jù)

        構(gòu)造函數(shù)getData(),獲取250條電影信息并逐一解析,返回值為datalist:def getData(baseurl):

        datalist = []

        for i in range(0,10):#用一個for循環(huán),爬取十頁數(shù)據(jù),一頁250條

        url = baseurl + str(i*25)

        html = askUrl(url)#將爬取到的網(wǎng)頁源碼保存,命名為html

        **對上一步得到的html數(shù)據(jù)進行逐一解析***#注:此處為一重要環(huán)節(jié),將在1.3中進行詳細說明。

        return datalist

        3 解析數(shù)據(jù)

        運用正則表達式逐一解析數(shù)據(jù)。運用以上兩個函數(shù),可以籠統(tǒng)的得到有關(guān)250條電影信息的html文件,網(wǎng)絡(luò)爬蟲的關(guān)鍵是運用正則表達式在整個html文件中找到所需要的信息規(guī)律,并將其提取出來。以Top1電影《肖申克的救贖》的html文件為例,試圖從中獲取到有用信息的規(guī)律,并構(gòu)造正則表達式進行提取。

        導(dǎo)演: 弗蘭克·德拉邦特 Frank Darabont 主演: 蒂姆·羅賓斯 Tim Robbins /...

        1994/美國/犯罪 劇情

        由于本次爬蟲任務(wù)主要為了分析人們的電影喜好,因此將主要爬取以下信息。

        A.電影名

        上面展示出的html文件中,有關(guān)電影名《肖申克的救贖》的部分為:

        于是,影片片名的正則表示式規(guī)則(之后簡稱為“規(guī)則”)為:

        findTitle = re.compile(r′′)

        B.影評評分

        有關(guān)影片評分的部分為:

        電影評分的規(guī)則是:

        findGrade = re.compile(r′′)

        C.評價人數(shù)

        有關(guān)評價人數(shù)的部分為:

        于是,評價人數(shù)的規(guī)則為:

        findJnumber = re.compile(r′′)

        D.影片類型

        有關(guān)影片相關(guān)內(nèi)容的部分為:

        導(dǎo)演: 弗蘭克·德拉邦特 Frank Darabont 主演: 蒂姆·羅賓斯 Tim Robbins /...

        1994/美國/犯罪 劇情

        于是,影片類型的規(guī)則為:

        findBd = re.compile(r′

        (.*?)

        ′,re.S)

        確定規(guī)則之后,在2中逐一解析數(shù)據(jù)部分的代碼應(yīng)為:

        titles = re.findall(findTitle,item)

        if(len(titles)) == 2:

        ctitle = titles[0]

        data.append(ctitle) #添加中文名

        otitle = titles[1].replace(″/″,″″) #把無關(guān)的符號去掉

        data.append(otitle) #添加外國名

        else:

        data.append(titles[0])

        data.append(′ ′) #外國名留空

        rating = re.findall(findGrade,item)[0]

        data.append(rating) #添加評分

        jdNum = re.findall(findJnumber,item)[0]

        data.append(jdNum) #添加評價人數(shù)

        bd = re.findall(findBd,item)[0]

        bd = re.sub(′(s+)?′,″ ″,bd) #去掉

        bd = re.sub(′/′,″ ″,bd) #替換/

        data.append(bd.strip()) #去掉前后的空格

        datalist.append(data) #把處理好的一部電影信息放入datalist。

        4 存儲數(shù)據(jù)

        構(gòu)造數(shù)據(jù)保存函數(shù)saveData(datalist,savepath),將數(shù)據(jù)保存在指定路徑savepath中,

        def saveData(datalist,savepath):

        wbook = xlwt.Workbook(encoding=″ytf=8″,style_compression=0) #創(chuàng)建workbook對象

        sheet = wbook.add_sheet(′豆瓣電影Top250′,cell_overwrite_ok=True) #創(chuàng)建工作表

        col = (″影片中文名″,″影片外國名″,″評分″,″評價數(shù)″,″相關(guān)信息″)

        for i in range(0,5):

        sheet.write(0,i,col[i]) #列名

        for i in range(0,250):

        print(″第%d條″%(i+1))

        data = datalist[i]

        for j in range(0,5):

        sheet.write(i+1,j,data[j])

        wbook.save(savepath) #保存

        5 構(gòu)造主函數(shù)main()

        def main():

        baseurl = ″https://movie.douban.com/top250?start=″

        #1.網(wǎng)頁爬取

        datalist = getData(baseurl)

        savepath = ″.\豆瓣電影Top250.xls″

        #3. 保存數(shù)據(jù)

        saveData(datalist,savepath)

        6 運行主函數(shù)

        if __name__ == ″__main__″:

        main() #調(diào)用函數(shù)

        print(″爬取完畢″)

        上述所有步驟完成后,即可得到一個名為:豆瓣電影Top250.xls的Excel表格文件,里面共包含250條數(shù)據(jù)。以下為其中的一部分,具體內(nèi)容如表1所示。

        表1 電影數(shù)據(jù)Tab.1 Movie data

        “相關(guān)信息”一欄可以通過所含的電影所屬國家和電影種類對觀眾的電影喜好進行分析。為了方便以后的應(yīng)用,將相關(guān)信息一欄分列為“國家”一欄和若干“類型”一欄,并進行簡化處理。簡化后的表格如表2所示。

        表2 電影種類Tab.2 Movie types

        7 結(jié)論與思考

        在豆瓣影評Top250中,美國電影所占市場份額較大,占總數(shù)的44%。其次為中國電影和日本電影,分別占16%和13%。其余國家電影所占市場份額較少,均不到10%。需大力支持國產(chǎn)電影,有關(guān)部門也應(yīng)加大國產(chǎn)電影的對外宣傳。

        在眾多類別的電影中,劇情類電影出現(xiàn)的頻率最高,說明人們對于電影的要求越來越高,不僅限于觀看其特效是否華麗,最為關(guān)注的是其本身的劇情,因此一部電影若想吸引人的眼球,需要扣人心弦的好劇本,只靠特效和流量明星是遠遠不夠的,內(nèi)容連貫、跌宕起伏的劇情才是給電影帶來關(guān)注度的重要保障。頻次第二高的是喜劇片,人們的生活壓力越來越大,工作之余和家人朋友一起去看一部喜劇片是一種緩解生活壓力的好方法[3-5]。

        猜你喜歡
        網(wǎng)頁解析函數(shù)
        二次函數(shù)
        第3講 “函數(shù)”復(fù)習精講
        三角函數(shù)解析式中ω的幾種求法
        二次函數(shù)
        函數(shù)備考精講
        基于CSS的網(wǎng)頁導(dǎo)航欄的設(shè)計
        電子制作(2018年10期)2018-08-04 03:24:38
        睡夢解析儀
        電競初解析
        商周刊(2017年12期)2017-06-22 12:02:01
        基于URL和網(wǎng)頁類型的網(wǎng)頁信息采集研究
        電子制作(2017年2期)2017-05-17 03:54:56
        相機解析
        国产亚洲欧美另类久久久| 亚洲综合图色40p| 男人的天堂av网站| 精品少妇人妻av一区二区| 日本在线视频www色| 精品国产av色一区二区深夜久久| 野花社区视频www官网| 国产资源精品一区二区免费| 狠狠干视频网站| 精品人妻一区二区久久| 亚洲一区二区三区免费网站| 亚洲av成人片色在线观看| 久久久精品国产sm调教网站| 亚洲男人第一av网站| 女的把腿张开男的猛戳出浆| 97人妻蜜臀中文字幕| 精品少妇一区二区三区四区| 最新国产精品国产三级国产av| 国产黄色三级三级三级看三级| 国产精品国产三级国产专播下| 国产精久久一区二区三区| 国产成人精品av| 国产精品乱子伦一区二区三区 | 偷拍综合在线视频二区日韩| 艳妇臀荡乳欲伦交换h在线观看 | 国产精品自拍盗摄自拍| 极品粉嫩嫩模大尺度无码视频| v一区无码内射国产| 久久久亚洲色| 亚洲免费天堂| 在线视频一区二区在线观看| 久久av少妇亚洲精品| 亚洲精品中文字幕一区二区| 亚洲精品国产suv一区88| 久久精品日韩av无码| 99热这里只有精品久久6| 精品国产av一区二区三四区| 亚洲国产精品成人av在线不卡| 欧美成人看片一区二区三区尤物| 久久国产精久久精产国| 丁香婷婷色|