碼農前段時間寫了很多關于股票、報表自動化的內容,吸引的大批的直男粉絲,這是公眾號后臺的粉絲性別分布圖:
眾多的MM粉絲表示看不懂碼農的帖子,為了改變這種現狀,碼農決定寫點其他內容的帖子,比如說今天這篇關于娛樂八卦的帖子,希望各位MM看官喜歡。
想到寫這個主題,是因為最近正好有一部吃瓜綜藝在芒果臺大熱,那就是這部《乘風破浪的姐姐》。碼農今天帶大家用python去看看誰是你最喜歡的小姐姐~
豆瓣評論
碼農從豆瓣上看了下網友對這部綜藝的評分,總體評分8.4也還算不錯。
那看看推薦的網友們都有些啥評價,碼農祭出Python爬蟲大殺器selenium來,爬了200條評論,然后我們看看網友的關鍵詞都有些啥。
沒想到啊,大家討論最多的明星是星女郎張雨綺。
藝人百科數據大PK
下面,碼農通過從百度百科下載了30位參賽女藝人的相關信息,通過數據可視化的方式了解下這些姐姐們的情況。
先看下年齡分布,大部分的姐姐都是集中在30-40歲,其中30-35歲之間的占了40%。
接下來,看下大家的星座分布。白羊座是最多的,其次是水瓶和金牛。
再看下血型分布,百度百科真是啥都有。O型血果然是大眾血型。
接下來看看他們的家鄉,果然芒果臺還是請湖南的明星居多。萬茜、劉蕓、孟佳、沈夢辰、阿朵都是湖南人。
最后是身高和體重分布,大家的平均身高是166.54cm,平均體重是47.7Kg。
到底哪幾個小姐姐最終會成團,誰又是你心目中的C位,快來碼農的公眾號留言吧。
如果你還沒有看過癮,那就自己動手去爬更多的數據去看吧。碼農會貼出部分代碼,供各位看官參考喲。
Python 部分代碼
1.豆瓣評論爬取
def get_douban_comment(page):
browser.get("https://movie.douban.com/subject/34894589/collections?start="+str(page))
browser.find_element_by_class_name('sub_ins')
df1=browser.find_element_by_class_name('sub_ins')
df2=df1.find_elements_by_tag_name('table')
comment=[]
star=[]
for i in df2:
if len(i.text.split('\n'))==3:
comment.append(i.text.split('\n')[2])
else:
comment.append('')
x=i.find_element_by_class_name('pl')
try:
star.append(x.find_element_by_tag_name('span').get_attribute('title'))
except:
star.append('')
print("https://movie.douban.com/subject/34894589/collections?start="+str(page)+' 解析完成')
print('解析評論%s條'%len(comment))
return comment,star
Cmt=[]
Star=[]
for i in range(10):
a,b=get_douban_comment(i*20)
for i in a:
Cmt.append(i)
for j in b:
Star.append(j)
df=pd.DataFrame({'star':Star,'Comment':Cmt})
df.to_excel(r'e:/cfpl/comment.xls',index=False)
2.百度百科爬取代碼
from selenium import webdriver
import pandas as pd
import time
import pickle
import os
#獲取藝人清單和百度百科鏈接
def get_name_list():
browser = webdriver.Chrome(r'chromedriver.exe')
browser.get("https://baike.baidu.com/item/%E4%B9%98%E9%A3%8E%E7%A0%B4%E6%B5%AA%E7%9A%84%E5%A7%90%E5%A7%90/49998987?fr=aladdin#3")
a=browser.find_elements_by_tag_name('table')
b=a[1].find_elements_by_tag_name('tr')
list1=[]
for i in b:
c=i.find_elements_by_tag_name('td')
if len(c)==4:
for i in c:
list1.append(i)
name=[]
link=[]
for i in list1:
try:
k=i.find_elements_by_tag_name('a')[0]
print('藝人: %s,百科鏈接: %s' %(k.text,k.get_attribute('href')))
name.append(k.text)
link.append(k.get_attribute('href'))
except:
pass
browser.quit()
return name,link
name,link=get_name_list()
f=open(r'E:/cfpl/name.txt','w')
for i in name:
f.write(i+'\n')
f.close()
def get_data(link,name):
browser = webdriver.Chrome(r'chromedriver.exe')
browser.get(link)
b=browser.find_element_by_class_name("main-content")
c=b.find_elements_by_class_name('basic-info')[0]
t1=[]
t2=[]
for i in c.find_elements_by_tag_name('dt'):
t1.append(i.text)
for i in c.find_elements_by_tag_name('dd'):
t2.append(i.text)
d={}
for i in range(len(t1)):
d[t1[i]]=t2[i]
file='E:/cfpl/'+name+'.pkl'
f=open(file,'wb')
pickle.dump(d,f)
f.close()
print('%s pkl write down'%name)
browser.quit)()
#下載數據
for i in range(len(name)):
get_data(link[i],name[i])
3.可視化代碼--餅圖
#年齡可視化
data['年齡']=[int((datetime.datetime.now()-i).days/365.25) for i in data['出生日期']]
age_cut=[25,30,35,40,45,50]
age_label=['25-30','30-35','35-40','40-45','45-50']
data['年齡段']=pd.cut(data['年齡'],age_cut,labels=age_label)
from pyecharts import Pie
pie=Pie('年齡分布')
df1=data['年齡段'].value_counts()
df1=df1[df1.values>0]
pie.add('',df1.index,df1.values,is_label_show=True,is_legend_show=False,radius=[40,75])
pie.render(r'e:/cfpl/年齡分布.html')
pie
4.可視化代碼--柱狀圖
#星座可視化
from pyecharts import Bar
bar1=Bar('星座分布')
df2=data['星座'].value_counts()
bar1.add('',df2.index,df2.values,is_label_show=True,is_legend_show=False,mark_point=['max'])
bar1.render(r'e:/cfpl/星座分布.html')
bar1
5.可視化代碼--地圖
df6=data['出生地所在省市'].value_counts()
from pyecharts import Map
map=Map('出生地分布')
map.add('',df6.index,df6.values,is_visualmap=True,visual_range=[0,5],is_lagend_show=True)
map
6.可視化代碼--詞云
import jieba
from jieba import posseg as psg
from collections import Counter
def nlp(file):
#導入停用詞庫
stopwords = [line.strip() for line in open(r'cn_stopwords.txt', 'r', encoding='utf-8').readlines()]
name=[]
f=open(r'e:/cfpl/name.txt')
for i in f:
name.append(i.strip())
f.close()
for i in name:
jieba.add_word(i,tag='nr')
t=open(file).read()
#不需要考慮的詞性
nowords = ['x','uj','ul', 'p','d', 'v','zg','m','ug','i', 'f', 'ad','nz', 'r', 'r', 'ns','q','t','c']
words =[x.word for x in psg.cut(t) if len(x.word)>=2 and (x.flag) not in nowords and x.word not in stopwords]
word_count = Counter(words)
from pyecharts import WordCloud
wc=WordCloud('')
wc.add('',list(word_count.keys()),list(word_count.values()),shape='circle')
return wc
nlp(r'e:/cfpl/力薦.txt')
?
在如今這個大數據時代,財務狀況的實時掌握對于每個人來說都至關重要。無論是投資決策、理財規劃,還是對個人資產的管理,都需要及時、準確的數據支持。為了滿足這一需求,"查詢所有星座今日財務狀況總覽"的API接口應運而生。通過這個接口,您可以輕松獲取所有星座在今日的財務狀況總覽,幫助您更好地把握財務趨勢。
"查詢所有星座今日財務狀況總覽"是一個基于RESTful API的財務數據查詢接口。它采用了HTTP協議,通過GET請求獲取所有星座在今日的財務狀況總覽。接口返回的數據格式為JSON,包含以下字段:
下面是一個使用Python語言調用"查詢所有星座今日財務狀況總覽" API接口的示例代碼:
python復制代碼
import requests | |
import json | |
def get_all_constellations_today_finance_overview(): | |
url="https://www.wapi.cn/api_detail/73/185.html" | |
params={ | |
"date": "2023-07-06" | |
} | |
response=requests.get(url, params=params) | |
data=response.json() | |
return data['finance'] | |
# 測試代碼 | |
result=get_all_constellations_today_finance_overview() | |
print(json.dumps(result, indent=4)) |
這段代碼首先導入了requests和json庫,然后定義了一個名為get_all_constellations_today_finance_overview的函數。該函數通過GET請求訪問"查詢所有星座今日財務狀況總覽" API接口,并傳遞了查詢日期作為參數。接口返回的JSON數據被解析為Python字典,并返回了其中的"finance"字段的值。在測試代碼中,我們調用了這個函數并打印了結果。
在使用"查詢所有星座今日財務狀況總覽" API接口時,有幾個注意事項需要留意:
頭條創作挑戰賽#
本文同步本人掘金原創文章:https://juejin.cn/post/7160474897561419789
什么?
文言文可以編碼?
服了~
文言文語言的開發者是來自卡內基梅隆大學的黃令東,并且當時僅是一名大四的學生。文言文編程是利用NLP技術,將文言文語法轉換為 Javascript 或 Python 語法,從而進行編譯與運行。技術難度巨大。
大佬,請收下俺的膝蓋。
關于基本語法,度娘和谷歌上一搜一大把。這里我們簡單看看:
吾有一言。曰「「己所不欲,勿施於人」」。書之。
復制代碼
則有:
var stringVariable='己所不欲,勿施於人';
console.log(stringVariable);
復制代碼
對號入座。吾有一言。表明要定義一個字符串類型的變量。曰「「己所不欲,勿施於人」」表示將值己所不欲,勿施於人賦值給變量。書之這里的之代表前面定義的變量。書表明要寫下來。所以書之類比 Javascript 中的打印 console.log(變量)。
更多的內容,可以參照 開源軟件 - 文言文編程 或者其他介紹的站點。資源多多,這里不進行贅述。
好了,這里假設我們已經弄懂了基本的語法。那么我們來編寫一個成品 - 星座效果。成品靜態效果如下圖:
因為俺沒有找到文言文支持 class 類的寫法。這里我通過文言文的另一種寫法施實現:
施「(_=> {
class 類名 {
constructor() {
this.屬性=屬性值;
}
方法名() {
}
}
})」
復制代碼
其他內容的實現方式盡量采用文言文的語法形式。不然,整個項目,俺可以通過一個簡單的 施 字完成。那真是簡單乎矣。
比如取色:
疏曰。 主色調
吾有一物。名之曰「主色調」。
昔之「主色調」之「「紅調值」」者。今零是矣。
昔之「主色調」之「「綠調值」」者。今二百五十五是矣。
昔之「主色調」之「「藍調值」」者。今二百五十五是矣。
注曰。 當前顏色
吾有一術。名之曰「獲取顏色」欲行是術。必先得一物。曰「當前顏色」。一數。曰「當前透明度」。
乃行是術曰。
吾有一數。夫「當前顏色」之「「紅調值」」。名之曰「當前紅」。
吾有一數。夫「當前顏色」之「「綠調值」」。名之曰「當前綠」。
吾有一數。夫「當前顏色」之「「藍調值」」。名之曰「當前藍」。
吾有一言。施「(_=> `rgba(${當前紅}, ${當前綠}, ${ 當前藍 }, ${ 當前透明度 })`)」。名之曰「當前透明度顏色」。
乃得「當前透明度顏色」。
是謂「獲取顏色」之術也。
疏曰。 星星顏色
吾有一言。施「獲取顏色」於「主色調」。於一。名之曰「青色」。
昔之「星星顏色」者。今「青色」是矣。
復制代碼
上面代碼,聲明了主色調。然后聲明了一個函數,該函數有兩個參數 - 當前顏色 和 當前透明度 ,函數返回 rgba 的顏色。接著,我調用聲明的函數獲取顏色,將返回值賦予變量星星顏色。
本文介紹的星座特效,也是已經實現了的功能,主要包含下面的幾點:
具體的實現,讀者可以查看下面的成品代碼。
贈人玫瑰,手留花香。俺不要玫瑰,只要讀者的一個舉手之勞的贊~ 逃:)
https://code.juejin.cn/pen/7160145465692913672
*請認真填寫需求信息,我們會在24小時內與您取得聯系。