日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

用Python 爬取貓眼電影數據分析《無名之輩》

瀏覽:29日期:2022-07-16 11:59:34

前言

作者: 羅昭成

PS:如有需要Python學習資料的小伙伴可以加點擊下方鏈接自行獲取

http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

獲取貓眼接口數據

作為一個長期宅在家的程序員,對各種抓包簡直是信手拈來。在 Chrome 中查看原代碼的模式,可以很清晰地看到接口,接口地址即為:http://m.maoyan.com/mmdb/comments/movie/1208282.json?_v_=yes&offset=15

在 Python 中,我們可以很方便地使用 request 來發送網絡請求,進而拿到返回結果:

def getMoveinfo(url): session = requests.Session() headers = { 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X)' } response = session.get(url, headers=headers) if response.status_code == 200: return response.text return None

根據上面的請求,我們能拿到此接口的返回數據,數據內容有很多信息,但有很多信息是我們并不需要的,先來總體看看返回的數據:

{ 'cmts':[ { 'approve':0, 'approved':false, 'assistAwardInfo':{ 'avatar':'', 'celebrityId':0, 'celebrityName':'', 'rank':0, 'title':'' }, 'authInfo':'', 'cityName':'貴陽', 'content':'必須十分,借錢都要看的一部電影。', 'filmView':false, 'id':1045570589, 'isMajor':false, 'juryLevel':0, 'majorType':0, 'movieId':1208282, 'nick':'nick', 'nickName':'nickName', 'oppose':0, 'pro':false, 'reply':0, 'score':5, 'spoiler':0, 'startTime':'2018-11-22 23:52:58', 'supportComment':true, 'supportLike':true, 'sureViewed':1, 'tagList':{ 'fixed':[ { 'id':1, 'name':'好評' }, { 'id':4, 'name':'購票' } ] }, 'time':'2018-11-22 23:52', 'userId':1871534544, 'userLevel':2, 'videoDuration':0, 'vipInfo':'', 'vipType':0 } ]}​

如此多的數據,我們感興趣的只有以下這幾個字段:

nickName, cityName, content, startTime, score

接下來,進行我們比較重要的數據處理,從拿到的 JSON 數據中解析出需要的字段:

def parseInfo(data): data = json.loads(html)[’cmts’] for item in data: yield{ ’date’:item[’startTime’], ’nickname’:item[’nickName’], ’city’:item[’cityName’], ’rate’:item[’score’], ’conment’:item[’content’] }

拿到數據后,我們就可以開始數據分析了。但是為了避免頻繁地去貓眼請求數據,需要將數據存儲起來,在這里,筆者使用的是 SQLite3,放到數據庫中,更加方便后續的處理。存儲數據的代碼如下:

def saveCommentInfo(moveId, nikename, comment, rate, city, start_time) conn = sqlite3.connect(’unknow_name.db’) conn.text_factory=str cursor = conn.cursor() ins='insert into comments values (?,?,?,?,?,?)' v = (moveId, nikename, comment, rate, city, start_time) cursor.execute(ins,v) cursor.close() conn.commit() conn.close()

數據處理

因為前文我們是使用數據庫來進行數據存儲的,因此可以直接使用 SQL 來查詢自己想要的結果,比如評論前五的城市都有哪些:

SELECT city, count(*) rate_count FROM comments GROUP BY city ORDER BY rate_count DESC LIMIT 5

結果如下:

用Python 爬取貓眼電影數據分析《無名之輩》

從上面的數據, 我們可以看出來,來自北京的評論數最多。

不僅如此,還可以使用更多的 SQL 語句來查詢想要的結果。比如每個評分的人數、所占的比例等。如筆者有興趣,可以嘗試著去查詢一下數據,就是如此地簡單。

而為了更好地展示數據,我們使用 Pyecharts 這個庫來進行數據可視化展示。

根據從貓眼拿到的數據,按照地理位置,直接使用 Pyecharts 來在中國地圖上展示數據:

data = pd.read_csv(f,sep=’{’,header=None,encoding=’utf-8’,names=[’date’,’nickname’,’city’,’rate’,’comment’])city = data.groupby([’city’])city_com = city[’rate’].agg([’mean’,’count’])city_com.reset_index(inplace=True)data_map = [(city_com[’city’][i],city_com[’count’][i]) for i in range(0,city_com.shape[0])]geo = Geo('GEO 地理位置分析',title_pos = 'center',width = 1200,height = 800)while True: try: attr,val = geo.cast(data_map) geo.add('',attr,val,visual_range=[0,300],visual_text_color='#fff', symbol_size=10, is_visualmap=True,maptype=’china’)​ except ValueError as e: e = e.message.split('No coordinate is specified for ')[1] data_map = filter(lambda item: item[0] != e, data_map) else : breakgeo.render(’geo_city_location.html’)

注:使用 Pyecharts 提供的數據地圖中,有一些貓眼數據中的城市找不到對應的從標,所以在代碼中,GEO 添加出錯的城市,我們將其直接刪除,過濾掉了不少的數據。

使用 Python,就是如此簡單地生成了如下地圖:

用Python 爬取貓眼電影數據分析《無名之輩》

從可視化數據中可以看出,既看電影又評論的人群主要分布在中國東部,又以北京、上海、成都、深圳最多。雖然能從圖上看出來很多數據,但還是不夠直觀,如果想看到每個省/市的分布情況,我們還需要進一步處理數據。

而在從貓眼中拿到的數據中,城市包含數據中具備縣城的數據,所以需要將拿到的數據做一次轉換,將所有的縣城轉換到對應省市里去,然后再將同一個省市的評論數量相加,得到最后的結果。

data = pd.read_csv(f,sep=’{’,header=None,encoding=’utf-8’,names=[’date’,’nickname’,’city’,’rate’,’comment’])city = data.groupby([’city’])city_com = city[’rate’].agg([’mean’,’count’])city_com.reset_index(inplace=True)fo = open('citys.json',’r’)citys_info = fo.readlines()citysJson = json.loads(str(citys_info[0]))data_map_all = [(getRealName(city_com[’city’][i], citysJson),city_com[’count’][i]) for i in range(0,city_com.shape[0])]data_map_list = {}for item in data_map_all: if data_map_list.has_key(item[0]): value = data_map_list[item[0]] value += item[1] data_map_list[item[0]] = value else: data_map_list[item[0]] = item[1]data_map = [(realKeys(key), data_map_list[key] ) for key in data_map_list.keys()]def getRealName(name, jsonObj): for item in jsonObj: if item.startswith(name) : return jsonObj[item] return namedef realKeys(name): return name.replace(u'省', '').replace(u'市', '') .replace(u'回族自治區', '').replace(u'維吾爾自治區', '') .replace(u'壯族自治區', '').replace(u'自治區', '')

經過上面的數據處理,使用 Pyecharts 提供的 map 來生成一個按省/市來展示的地圖:

def generateMap(data_map): map = Map('城市評論數', width= 1200, height = 800, title_pos='center') while True: try: attr,val = geo.cast(data_map) map.add('',attr,val,visual_range=[0,800], visual_text_color='#fff',symbol_size=5, is_visualmap=True,maptype=’china’, is_map_symbol_show=False,is_label_show=True,is_roam=False, ) except ValueError as e: e = e.message.split('No coordinate is specified for ')[1] data_map = filter(lambda item: item[0] != e, data_map) else : break map.render(’city_rate_count.html’)

用Python 爬取貓眼電影數據分析《無名之輩》

當然,我們還可以來可視化一下每一個評分的人數,這個地方采用柱狀圖來顯示:

data = pd.read_csv(f,sep=’{’,header=None,encoding=’utf-8’,names=[’date’,’nickname’,’city’,’rate’,’comment’])# 按評分分類rateData = data.groupby([’rate’])rateDataCount = rateData['date'].agg([ 'count'])rateDataCount.reset_index(inplace=True)count = rateDataCount.shape[0] - 1attr = [rateDataCount['rate'][count - i] for i in range(0, rateDataCount.shape[0])]v1 = [rateDataCount['count'][count - i] for i in range(0, rateDataCount.shape[0])]bar = Bar('評分數量')bar.add('數量',attr,v1,is_stack=True,xaxis_rotate=30,yaxix_min=4.2, xaxis_interval=0,is_splitline_show=True)bar.render('html/rate_count.html')

畫出來的圖,如下所示,在貓眼的數據中,五星好評的占比超過了 50%,比豆瓣上 34.8% 的五星數據好很多。

用Python 爬取貓眼電影數據分析《無名之輩》

從以上觀眾分布和評分的數據可以看到,這一部劇,觀眾朋友還是非常地喜歡。前面,從貓眼拿到了觀眾的評論數據。現在,筆者將通過 jieba 把評論進行分詞,然后通過 Wordcloud 制作詞云,來看看,觀眾朋友們對《無名之輩》的整體評價:

data = pd.read_csv(f,sep=’{’,header=None,encoding=’utf-8’,names=[’date’,’nickname’,’city’,’rate’,’comment’])comment = jieba.cut(str(data[’comment’]),cut_all=False)wl_space_split = ' '.join(comment)backgroudImage = np.array(Image.open(r'./unknow_3.png'))stopword = STOPWORDS.copy()wc = WordCloud(width=1920,height=1080,background_color=’white’, mask=backgroudImage, font_path='./Deng.ttf', stopwords=stopword,max_font_size=400, random_state=50)wc.generate_from_text(wl_space_split)plt.imshow(wc)plt.axis('off')wc.to_file(’unknow_word_cloud.png’)

導出:

用Python 爬取貓眼電影數據分析《無名之輩》 .

到此這篇關于用Python 爬取貓眼電影數據分析《無名之輩》的文章就介紹到這了,更多相關Python 爬取貓眼電影數據分析《無名之輩》內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品chinese| 首页国产欧美日韩丝袜| 三级一区在线视频先锋| 国产精品免费看| 蜜桃av一区二区三区电影| 老色鬼久久亚洲一区二区| 亚洲欧洲av| 国产欧美久久一区二区三区| 国产精品一区二区美女视频免费看| 日本成人中文字幕在线视频| 国产欧美大片| 国产v日韩v欧美v| 亚洲高清不卡| 婷婷五月色综合香五月| 青青草91视频| 国产中文欧美日韩在线| 免费国产自久久久久三四区久久| 蜜桃一区二区三区在线| 日本亚洲欧美天堂免费| 另类综合日韩欧美亚洲| 99久久九九| 日韩欧美美女在线观看| 高清一区二区三区av| 自由日本语亚洲人高潮| 久久国内精品视频| 蜜桃成人精品| 日本不卡一区二区| 日韩精品午夜| 91精品国产自产观看在线| 精品中文字幕一区二区三区| 蜜桃成人av| 美女久久久久久| 丝袜国产日韩另类美女| 国产精品国产三级国产在线观看| 亚洲免费精品| 国产在线一区不卡| 亚洲人成毛片在线播放女女| 成人影视亚洲图片在线| 日韩国产在线一| 午夜精品免费| 日韩精品诱惑一区?区三区| 日本不卡视频在线| 久久要要av| 日韩av片子| 91嫩草精品| 亚洲欧美日韩一区在线观看| 中文字幕色婷婷在线视频| 国产亚洲精品精品国产亚洲综合| 午夜国产欧美理论在线播放| 国产 日韩 欧美 综合 一区| 国产精品一区二区三区www| 婷婷综合国产| 免费国产亚洲视频| 久久亚洲电影| 亚洲在线免费| 美女国产精品| 亚洲视频播放| 香蕉久久夜色精品国产| 亚洲午夜91| 亚洲午夜精品久久久久久app| 国产精品网址| 国产精品啊v在线| 免费精品一区| 国产一区二区三区亚洲| 国产精品国产一区| 成人精品国产亚洲| av资源新版天堂在线| 韩国精品主播一区二区在线观看 | 欧美三区四区| 99精品电影| 99国产精品私拍| 欧美午夜不卡影院在线观看完整版免费| 亚洲不卡系列| 免费视频久久| 欧美日一区二区三区在线观看国产免 | 国产亚洲高清一区| 欧美国产精品| 中文字幕在线视频久| 国产真实久久| 亚洲性视频在线| **爰片久久毛片| 精品黄色一级片| 在线日韩一区| 日本午夜免费一区二区| 精品一区av| 日韩午夜黄色| 国产精品天天看天天狠| 亚洲国内精品| 国产精品videossex久久发布| 欧美黑人巨大videos精品| 在线一区免费观看| 亚洲精品观看| 麻豆精品视频在线| 欧美三级精品| 亚洲aa在线| 欧美羞羞视频| 欧美专区18| 国产成人精选| 亚洲视频二区| 日本久久成人网| 国产日产一区| 99视频在线精品国自产拍免费观看| 欧美午夜三级| 免费不卡在线视频| 成人片免费看| 国产精品1区在线| 中文字幕av亚洲精品一部二部| 性欧美videohd高精| 国产精品白丝久久av网站| 综合精品一区| 欧美特黄一级| 久久的色偷偷| 欧美日韩中文| 日韩在线网址| 夜夜嗨一区二区三区| 青青青免费在线视频| 青草国产精品| 亚洲综合中文| 中文字幕av一区二区三区人| 亚洲一区区二区| 日韩午夜av| 99热精品在线观看| 免费观看不卡av| 欧美日韩视频网站| 色婷婷精品视频| 蜜桃tv一区二区三区| 伊人久久av| 欧美精品高清| 国产一区日韩一区| 亚洲二区三区不卡| 亚洲黄色在线| 蜜臀av一区二区在线免费观看 | 国产网站在线| 国产成人精品一区二区三区视频| 欧美精品第一区| 精品日本视频| 美女精品久久| 久久国产精品成人免费观看的软件| 亚洲视频综合| 亚洲一二三区视频| 日韩精品免费观看视频| 麻豆精品在线播放| 国产激情在线播放| 国产综合精品一区| 亚洲人成网77777色在线播放 | 欧美xxxx中国| 免费看的黄色欧美网站| 欧美日韩亚洲三区| 免费日韩成人| 亚洲成人日韩| 日本少妇精品亚洲第一区| 精品黄色一级片| 在线午夜精品| 免费观看亚洲天堂| 黄色国产精品| 国产精品99久久免费观看| 91精品国产乱码久久久久久久 | 久久只有精品| 精品免费av在线| 亚洲精品美女| 中文另类视频| 日日夜夜免费精品视频| 久久91导航| 国产精东传媒成人av电影| 亚洲成人国产| 久久久久九九精品影院| 亚洲一区观看| 久久中文视频| 久久av日韩| 天海翼精品一区二区三区| 亚洲va中文在线播放免费| 日本一区福利在线| 国产99精品一区| 国产精品免费大片| 蜜桃久久av一区| 亚洲第一区色| 久久裸体视频| 在线看片福利| 精品久久91| 国产精品超碰| 国产精品综合| 欧美精品三级在线| 日本午夜精品一区二区三区电影 | 蜜臀av国产精品久久久久| se01亚洲视频| 日本不卡不码高清免费观看| 亚洲激精日韩激精欧美精品| 日韩精品中文字幕第1页| 电影91久久久| 麻豆精品久久久| 91精品麻豆| 国产精品亚洲片在线播放| 久久国产精品免费精品3p| 日韩国产在线一| 日韩va亚洲va欧美va久久| 日韩动漫一区| 国产精品调教| 水蜜桃精品av一区二区| 日韩av自拍| 久久激情网站|