999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2022-08-08 07:56:26唐孝國郭俊亮
黑龍江科學(xué) 2022年14期
關(guān)鍵詞:信息

王 恒,唐孝國,郭俊亮

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

0 引言

為了解觀眾的電影喜好,找到了具有代表性的電影網(wǎng)站進行了系統(tǒng)分析。若想要獲取豆瓣網(wǎng)站中電影評分Top250的數(shù)據(jù),可直接登錄豆瓣網(wǎng)址,這種操作雖能得到目標(biāo)數(shù)據(jù),但需要耗費大量的時間和精力,并有可能遺漏某些數(shù)據(jù),為此通過編寫python程序進行網(wǎng)頁爬取和分析。較于人工搜集數(shù)據(jù),python爬取程序具有更為快速、準(zhǔn)確及方便的特點,分析后的數(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中進行詳細(xì)說明。

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)注的是其本身的劇情,因此一部電影若想吸引人的眼球,需要扣人心弦的好劇本,只靠特效和流量明星是遠(yuǎn)遠(yuǎn)不夠的,內(nèi)容連貫、跌宕起伏的劇情才是給電影帶來關(guān)注度的重要保障。頻次第二高的是喜劇片,人們的生活壓力越來越大,工作之余和家人朋友一起去看一部喜劇片是一種緩解生活壓力的好方法[3-5]。

猜你喜歡
信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息超市
展會信息
展會信息
展會信息
展會信息
展會信息
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 亚洲国产成熟视频在线多多| 国产手机在线ΑⅤ片无码观看| 日韩二区三区无| 色婷婷亚洲综合五月| 99热最新网址| 亚洲成人在线播放 | 国产三级成人| 亚洲精品国产首次亮相| 亚洲福利片无码最新在线播放| 青草视频免费在线观看| 亚洲性色永久网址| 在线国产综合一区二区三区| 国产成人亚洲精品蜜芽影院| 久久激情影院| 欧美亚洲欧美区| 毛片基地美国正在播放亚洲 | 国产剧情一区二区| 色妞www精品视频一级下载| 亚洲欧美日韩中文字幕一区二区三区| 成人在线综合| 亚洲动漫h| 国产在线日本| 久久久久久尹人网香蕉| 国产网站免费看| 久久天天躁夜夜躁狠狠| 成人午夜网址| 欧美啪啪网| 国产精品污视频| 亚洲天堂777| 欧美精品三级在线| 国产伦片中文免费观看| 亚洲有无码中文网| 全部无卡免费的毛片在线看| 欧美色亚洲| 国产成人免费观看在线视频| 2018日日摸夜夜添狠狠躁| 免费人欧美成又黄又爽的视频| 99青青青精品视频在线| 国产69精品久久久久妇女| 玖玖精品视频在线观看| 久久 午夜福利 张柏芝| av在线手机播放| 91久久夜色精品| 国产一区二区精品福利| 国产凹凸视频在线观看| 国产又粗又爽视频| 欧美日韩中文国产| 亚洲国产精品久久久久秋霞影院| 99re这里只有国产中文精品国产精品 | 欧美精品另类| 国产黑丝视频在线观看| 丁香婷婷在线视频| 国产午夜小视频| 熟妇无码人妻| 亚洲欧美激情另类| 午夜电影在线观看国产1区| 国产激情无码一区二区APP| 91啦中文字幕| 久久香蕉国产线看观看精品蕉| 人妻一本久道久久综合久久鬼色| 青青网在线国产| 成人在线第一页| 国内精品一区二区在线观看| 精品人妻系列无码专区久久| 美女扒开下面流白浆在线试听| 91九色国产在线| 欧美日韩免费观看| 欧美成人精品欧美一级乱黄| 中文字幕av一区二区三区欲色| 女人毛片a级大学毛片免费| 第九色区aⅴ天堂久久香| 国模视频一区二区| 国产第一页屁屁影院| 国产成人精品无码一区二| 国产精品午夜电影| 不卡视频国产| 伊人91在线| 日韩高清欧美| 亚洲天堂网2014| 精品人妻AV区| 91蜜芽尤物福利在线观看| 嫩草在线视频|