簡介:快來拿出你珍藏的pick star,用大家對他的愛重塑一個他吧。通過爬取微博評論,製作你的偶像圖片詞雲,天天都是不重樣的哦!
很多人學習python,不知道從何學起。
很多人學習python,掌握了基本語法過後,不知道在哪裏尋找案例上手。
很多已經做案例的人,卻不知道如何去學習更加高深的知識。
那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視訊教學,電子書籍,以及課程的原始碼!
QQ羣:101677771
06月03號,英雄聯盟史上永遠的神--UZI退役,一代傳奇落下帷幕。
作爲聯盟史上頗有爭議的ADC選手,"狗黑"和"狗吹"無時無刻不展開着激烈的鍵盤搏殺。那麼,在3號UZI的退役微博下,是哪一種聲音更多呢?下面 下麪讓我們一起通過Python爬取微博評論,科學的分析一下吧!
準備工作
首先,我們找到UZI的退役微博評論介面(淚目..):
此時,利用谷歌瀏覽器的抓包工具,即點選F12,清空所有連線後,F5重新整理,看到評論爲下面 下麪的鏈接:
記住右邊標註紅框的部分,一會需要用到它來爬取評論。
同時點選左邊第二行hotflow?id...那個network,找到Cookie值,將他複製下來,備用。
然後,通過觀察翻頁規律,發現第二頁比首頁評論多了一個參數max_id,而這個參數可以在首頁的頁面返回值中拿到。故想獲得n頁的鏈接,只需要解析n-1頁就可以了。
爬微博評論階段
首先構造請求頭,通過requests庫得到頁面響應。
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36', 'Accept': 'application/json, text/plain, */*', 'MWeibo-Pwa': '1', 'Referer': 'https://m.weibo.cn/detail/%s' % mid, 'X-Requested-With': 'XMLHttpRequest', 'Cookie': '複製的Cookie值' }url = args.urlif num > 1: url = 'https://m.weibo.cn/comments/hotflow?id={}&mid={}&max_id={}&max_id_type=0'.format(mid, mid, max_id)response = requests.get(url, headers=headers
接下來對返回值進行解析:
comment = item['text']
comment = emoji.demojize(comment)
comment = re.sub('<span.*</span>', ' ', comment)
comment = re.sub('<a.*>', ' ', comment)
name = item['user']['screen_name']
created_at = itemi['created_at']
通過回圈獲取每條評論的使用者名稱、評論時間和評論內容,並對評論內容做去表情和圖片鏈接的處理,最後儲存爲csv檔案:
df = pd.DataFrame({'使用者名稱': name_list, '評論': comment_list, '時間': created_at_list})df = df.drop_duplicates()df.to_csv('comments.csv', index=False)
結果如圖(二次淚目中...):
這樣一個簡單的爬蟲就處理完成了,食材準備好了,主食就應該開火了,起鍋燒油!
偶像詞雲製作
首先,選擇你最愛的偶像的照片,這裏選擇狂小狗童鞋:
然後進行摳圖、配上白色背景(如果不進行這一步,最後製作的詞雲可能會因爲色差不明顯導致有噪音):
rmbg = RemoveBg("你的api", "error.log")
rmbg.remove_background_from_img_file(path)
img = cv2.imread(path, -1)
img_copy = img.copy()
img_shape = img_copy.shape
width = img_shape[0]
height = img_shape[1]
for yh in range(height):
for xw in range(width):
color_d = img_copy[xw, yh]
if color_d[3] == 0:
img_copy[xw, yh] = [255, 255, 255, 255]
上述程式碼需要用到removebg模組的api,搜尋這個模組,註冊一下就可以拿到,很簡單。
經過這兩步處理後,就可以進行詞雲的製作了。
wc = WordCloud(font_path='simkai.ttf', background_color='white', mask=img)
wc.generate_from_frequencies(words)
wc.to_file(os.path.join(savepath, title+'.png'))
效果如下圖:
可見,人們對於簡自豪UZI的退役還是懷念與祝福佔主流的,一員老將的離去,標誌着一部分人青春的結束,但是未來的旅程也會同樣精彩的!
不只是UZI,你喜歡的偶像是誰呢?準備一張他的美照,輸入啓動命令'python crawling.py --url 評論鏈接 --image 美照地址',就可以進行詞雲自動生成了。