整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

Python带你起底乘风破浪的姐姐们

Python带你起底乘风破浪的姐姐们

码农前段时间写了很多关于股票、报表自动化的内容,吸引的大批的直男粉丝,这是公众号后台的粉丝性别分布图:

众多的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接口应运而生。通过这个接口,您可以轻松获取所有星座在今日的财务状况总览,帮助您更好地把握财务趋势。

API接口介绍

"查询所有星座今日财务状况总览"是一个基于RESTful API的财务数据查询接口。它采用了HTTP协议,通过GET请求获取所有星座在今日的财务状况总览。接口返回的数据格式为JSON,包含以下字段:

  • id: 用户ID,用于标识用户。
  • date: 查询的日期,例如"2023-07-06"。
  • 星座: 包含所有星座的财务状况信息,每个星座都有自己的财务数据统计结果,包括收入、支出、资产、负债等关键指标。



代码示例

下面是一个使用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接口时,有几个注意事项需要留意:

  1. 由于该接口返回的数据是动态生成的,因此每次查询都需要发送HTTP请求。建议在需要频繁查询的情况下使用缓存机制以提高性能。
  2. 请确保在发送请求时提供正确的用户ID和密码,这些信息在接口文档中有详细说明。此外,还需要确保传递正确的查询日期参数。
  3. 由于财务数据受到多种因素的影响,包括市场波动、经济环境等,因此结果仅供参考。请根据自身实际情况进行判断和分析。随着社交媒体的不断发展,微博已成为一种常见的社交平台。在这个平台上,有很多热门话题或事件,这些话题或事件的热度是我们关注的焦点之一。因此,获取微博热度排行榜API接口显得格外重要。

头条创作挑战赛#

本文同步本人掘金原创文章:https://juejin.cn/post/7160474897561419789

什么?

文言文可以编码?

服了~

前言

文言文语言的开发者是来自卡内基梅隆大学的黄令东,并且当时仅是一名大四的学生。文言文编程是利用NLP技术,将文言文语法转换为 JavascriptPython 语法,从而进行编译与运行。技术难度巨大。

大佬,请收下俺的膝盖。

基本语法

关于基本语法,度娘和谷歌上一搜一大把。这里我们简单看看:

吾有一言。曰「「己所不欲,勿施於人」」。書之。
复制代码

则有:

var stringVariable='己所不欲,勿施於人';
console.log(stringVariable);
复制代码

对号入座。吾有一言。表明要定义一个字符串类型的变量。曰「「己所不欲,勿施於人」」表示将值己所不欲,勿施於人赋值给变量。書之这里的代表前面定义的变量。表明要写下来。所以書之类比 Javascript 中的打印 console.log(变量)

更多的内容,可以参照 开源软件 - 文言文编程 或者其他介绍的站点。资源多多,这里不进行赘述。

星座效果

好了,这里假设我们已经弄懂了基本的语法。那么我们来编写一个成品 - 星座效果。成品静态效果如下图:

因为俺没有找到文言文支持 class 类的写法。这里我通过文言文的另一种写法实现:

施「(_=> {
  class 类名 {
    constructor() {
      this.属性=属性值;
    }
    
    方法名() {
    
    }
  }
})」
复制代码

其他内容的实现方式尽量采用文言文的语法形式。不然,整个项目,俺可以通过一个简单的 字完成。那真是简单乎矣。

比如取色:

疏曰。 主色調
吾有一物。名之曰「主色調」。
昔之「主色調」之「「紅調值」」者。今零是矣。
昔之「主色調」之「「綠調值」」者。今二百五十五是矣。
昔之「主色調」之「「藍調值」」者。今二百五十五是矣。

注曰。 當前顏色
吾有一術。名之曰「獲取顏色」欲行是術。必先得一物。曰「當前顏色」。一數。曰「當前透明度」。
乃行是術曰。
  吾有一數。夫「當前顏色」之「「紅調值」」。名之曰「當前紅」。
  吾有一數。夫「當前顏色」之「「綠調值」」。名之曰「當前綠」。
  吾有一數。夫「當前顏色」之「「藍調值」」。名之曰「當前藍」。
  吾有一言。施「(_=> `rgba(${當前紅}, ${當前綠}, ${ 當前藍 }, ${ 當前透明度 })`)」。名之曰「當前透明度顏色」。
  乃得「當前透明度顏色」。
是謂「獲取顏色」之術也。

疏曰。 星星顏色
吾有一言。施「獲取顏色」於「主色調」。於一。名之曰「青色」。
昔之「星星顏色」者。今「青色」是矣。
复制代码

上面代码,声明了主色调。然后声明了一个函数,该函数有两个参数 - 當前顏色當前透明度 ,函数返回 rgba 的颜色。接着,我调用声明的函数獲取顏色,将返回值赋予变量星星顏色

本文介绍的星座特效,也是已经实现了的功能,主要包含下面的几点:

  • 生成星星?
  • 生成星星之间的连线
  • 星星的移动
  • 鼠标点和星星之间的互动:在设定的半径范围内,星星进行规避
  • 监听窗口的更改,改变星星的数量

具体的实现,读者可以查看下面的成品代码。

赠人玫瑰,手留花香。俺不要玫瑰,只要读者的一个举手之劳的赞~ 逃:)

体验地址

https://code.juejin.cn/pen/7160145465692913672