Python项目实战:让我用代码评价你的公司

前言:

随着互联网行业的日益兴盛,吸引力越来越多的牛人加入其中,也有许多小伙伴跃跃欲试,想要在互联网的浪潮中大展身手。今天我们通过看准网的数据,帮助大家对各大互联网公司有一个比较概括的了解。

01:数据来源

看准网提供了许多员工对于公司的评价,我们从中提取需要的数据,包括整体评分、面试难度、推荐率、前景看好情况、CEO支持率,代码如下:

## 获得信息

def get_company_info(num,headers):

## 获得评价数据

url = '网页链接(num)+'.html?ka=com-blocker1-review'

js='window.open("'+url+'")'

driver.execute_script(js)

time.sleep(5)

driver.close()

driver.switch_to_window(driver.window_handles[0])

bsObj=BeautifulSoup(driver.page_source,"html.parser")

tag=bsObj.find('div',attrs={'class':'all_item'}).text.replace('','').replace('

','').replace('(',' ').replace(')',' ').split(' ')

tag=tag[0:len(tag)-1]

this_tag = {tag[i*2]:tag[i*2+1] for i in np.arange(int(len(tag)/2-1))}

this_name = bsObj.find('div',attrs={'class':'co_name t_center'}).text

this_overal = float(bsObj.find('div',attrs={'class':'res_box_star f_right'}).find('em').text)

points = bsObj.find('ul',attrs={'class':'score_rate clearfix'}).text.replace('

',' ').split()

this_recommend = float(points[0][0:2])/100*5

this_future = float(points[2][0:2])/100*5

this_ceo = float(points[4][0:2])/100*5

## 获得CEO头像和公司logo

ceo_pic = bsObj.find('div',attrs={'class':'ceo_info'}).find('div').find('img').attrs['src']

ceo_name = bsObj.find('div',attrs={'class':'ceo_info'}).find('p').text

head_logo = bsObj.find('div',attrs={'class':'com_logo f_left'}).find('img').attrs['src']

head_loc = 'D:/爬虫/看准/公司logo/'+this_name+'.jpg'

ceo_loc = 'D:/爬虫/看准/CEOlogo/'+this_name+'.jpg'

request.urlretrieve(head_logo,head_loc)

request.urlretrieve(ceo_pic,ceo_loc)

## 获得面试难度

url = '网页链接(num)+'.html?ka=com-floater-interview'

js='window.open("'+url+'")'

driver.execute_script(js)

time.sleep(5)

driver.close()

driver.switch_to_window(driver.window_handles[0])

bsObj=BeautifulSoup(driver.page_source,"html.parser")

req=request.Request(url,headers=headers)

html=urlopen(req)

bsObj=BeautifulSoup(html.read(),"html.parser")

this_difficulty = float(bsObj.find('section',attrs={'class':'interview_feel'}).find('em').text)

this_feeling = bsObj.find('ul',attrs={'class':'score_list'}).find_all('span',attrs={'class':'percent'})

this_feeling = [float(k.text.replace('%','')) for k in this_feeling]

this_feeling = (this_feeling[0]*5+this_feeling[1]*3+this_feeling[2]*1)/100

## 整合数据成为字典

this_company ={'name':this_name,'overal':this_overal,'comments':tag[1],'recommend':this_recommend,

'future':this_future,'ceo':this_ceo,'difficulty':this_difficulty,'feeling':this_feeling}

return this_company,this_tag,this_name

02:整体对比

我们最终选取了50家互联网公司作为样本进行对比,选取来源主要是结合2018年互联网公司百强榜单和看准网上的实际评价数量,选取的公司logo拼图如下,我们会在第4部分讲解如何将图片进行拼接:

首先对比各项评价指标的TOP15:

可以看到,榜单中BAT在各项排名中都处于十分靠前的位置,网易也占据了多个榜单的靠前位置,腾讯霸占了所有排名的TOP1。下面我们再来看一下面试难度,我们选取了面试难度评分的TOP15和BOTTOM15,该数据仅供参考,根据小编的经验,同一个公司的不同部门不同岗位之间的难度差异也非常大。

在面试难度偏低的一些公司中,有许多非常不错的公司,该数据仅仅是一个参考,真正的面试还是要取决于求职者的实际能力,所谓会者不难,难者不会。真正的大牛无论是面对多么困难的面试,依然可以slay全场。

## 整体评分top15柱形图

company=pd.read_excel('company_info.xlsx')

company_overal = company.sort_values('overal',ascending=False)[0:15]

attr = company_overal['name']

v1=round(company_overal['overal'],2)

bar = Bar("整体评分TOP15",title_pos='center')

bar.use_theme('essos')

bar.add("", attr, v1, is_stack=False,xaxis_rotate=30,yaxis_min=3.7,is_label_show=True,

xaxis_interval =0,is_splitline_show=False)

bar.render('整体评分TOP15.html')

03:雷达图

前面我们看的都是各个公司之间的对比,下面我们看一下同一个公司不同维度的情况,我们选取了BAT和TMD作为数据,其他的公司也可以按照同样的方式进行对比,首先看一下BAT:

BAT真的是名副其实的业界标杆,各项指标都slay整个行业,下面我们看一下此前发展势头迅猛的TMD三家公司:

TMD三家公司和行业整体水平相比,也是出于领先地位,可见其还不错的发展势头,最后放上和小编息息相关的三家公司,具体是哪三家,相信了解小编的朋友一定是可以猜出来的:

alue_avg = [list(company.iloc[:,[1,3,4,5,6]].mean())]

value_company0 = [list(company.iloc[0,[1,3,4,5,6]])]

value_company1 = [list(company.iloc[1,[1,3,4,5,6]])]

value_company2 = [list(company.iloc[2,[1,3,4,5,6]])]

c_schema= [{"name": "总体评价", "max": 4.4, "min": 3.2},

{"name": "推荐度", "max": 4.75, "min": 2.4},

{"name": "前景看好", "max": 4.25, "min": 1},

{"name": "CEO/董事长认可度", "max": 4.8,"min":3},

{"name": "面试难度", "max": 3.4,"min":2.3}]

radar = Radar()

radar.use_theme('essos')

radar.config(c_schema=c_schema, shape='circle')

radar.add(company['name'][0], value_company0, item_color="blue", symbol=None,linewidht=5)

radar.add(company['name'][1], value_company1, item_color="orange", symbol=None,linewidht=5)

radar.add(company['name'][2], value_company2, item_color="red", symbol=None,linewidht=5)

radar.add("整体水平", value_avg, item_color="purple", symbol=None,linewidth=5,

legend_selectedmode='multiple')

radar.render('bat.html')

04:图片拼接

看准网提供了各个公司的logo和各位公司大佬的头像,我们冒昧地利用这些数据进行简单的图片拼接,制作成一副大的合成图。主要原理是利用numpy中的多维数组进行拼接,由于图像本身就可以看做是一个三维数组(彩色)或者一位数组(黑白),所以我们只需利用数组的拼接方法,就可以达到我们的目的。

代码如下:

## 拼接公司logo成为5*10的拼图

i = 0

for filename in os.listdir("./公司logo"):

file_loc = "D:/爬虫/看准/公司logo/"+filename

img = mpimg.imread(file_loc)[:,:,0:3]

img = cv2.resize(img, (180,180),interpolation=cv2.INTER_AREA)

if i % 10 == 0:

row_img=img

elif i == 9:

row_img=np.hstack((row_img,img))

all_img = row_img

elif i % 10 == 9:

row_img=np.hstack((row_img,img))

all_img = np.vstack((all_img,row_img))

else:

row_img=np.hstack((row_img,img))

i = i+1

plt.imshow(all_img)

plt.axis('off')

## 拼接大佬头像成为7*7的拼图

i = 0

for filename in os.listdir("./CEOlogo"):

file_loc = "D:/爬虫/看准/CEOlogo/"+filename

img = mpimg.imread(file_loc)[:,:,0:3]

img = cv2.resize(img, (500,500),interpolation=cv2.INTER_CUBIC)

if i % 7 == 0:

row_img=img

elif i == 6:

row_img=np.hstack((row_img,img))

all_img = row_img

elif i % 7 == 6:

row_img=np.hstack((row_img,img))

all_img = np.vstack((all_img,row_img))

else:

row_img=np.hstack((row_img,img))

i = i+1

plt.imshow(all_img)

plt.axis('off')

下面就是我们的效果图,不知道大家是否能一眼就把所有的logo都认全

学习Python过程中会遇到很多问题,你可以到我们的 python学习交流群【七 三 五,九 三 四,八 四 一】,基础,进阶。从企业招聘人才需求 到怎么学习python,和学习什么内容都有免费系统分享,让你无论是自学还是找相应的培训都能让你少走弯路。希望可以帮助你快速了解Python,学习python(以下是部分资料截图)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容