CV领域最HOT的职位!你猜对了吗?(附代码)

德先生 2018-12-06

秋招结束了

这个寒冬

你还好吗?



我们爬了北京市CV领域的职位需求

月薪从10K到100K

你知道最热的职位需求是什么吗?

不多说

放代码


爬取和分析主要步骤

1. 拉勾网通过关键字(图像、计算机视觉、算法、人工智能等)筛选出相应职位id,整理为列表

  • 这一项工作手动实现

  • 列表位于文件夹job_csv中(命名从15人规模到2000人规模依次为bj01.csv到bj06.csv)

2. 通过职位id列表爬取相应的详细页面内容

  • 因为反爬等信息需要设置essay-headers等

  • 按照公司规模分批次爬取,分别保存在 job_csv文件夹下(命名从job_bj01.csv到job_bj06.csv)

3. 合并以上文件为job_csv文件夹下 job_total.csv文件,作为数据分析资料

4. 进行数据分析,由以下部分组成

  1. 读入数据

  2. 定义搜索词

  3. 搜索词投票

  4. 投票结果可视化


网站关键词整理为感兴趣职位

这一部分手工实现


通过职位id列表爬取相应的详细页面内容


准备工作

# 导入相关库
import requests
import pandas as pd
import time
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
import random
import numpy as np


In[98]:

# 定义相关函数将csv格式id列表转为python list
def pd_to_list(pd):
    m, n = pd.shape
    return [int(pd.iloc[i,j])for i in range(m) for j in range(n) if pd.iloc[i,j] > 0]

bj01 = pd.read_csv('job_csv/bj01.csv')
bj02 = pd.read_csv('job_csv/bj02.csv')
bj03 = pd.read_csv('job_csv/bj03.csv')
bj04 = pd.read_csv('job_csv/bj04.csv')
bj05 = pd.read_csv('job_csv/bj05.csv')
bj06 = pd.read_csv('job_csv/bj06.csv')

list_bj01 = pd_to_list(bj01)
list_bj02 = pd_to_list(bj02)
list_bj03 = pd_to_list(bj03)
list_bj04 = pd_to_list(bj04)
list_bj05 = pd_to_list(bj05)
list_bj06 = pd_to_list(bj06)
len(list_bj01),len(list_bj02),len(list_bj03),len(list_bj04),len(list_bj05),len(list_bj06)

Out [98]:(5,119,78,52,42,44)


设置essay-headers和cookie等

In[99]:

# 定义essay-headers
co_zk = '_ga=GA1.2.696897302.1536903383; 
user_trace_token=20180914133622-1d558d49-b7e0-11e8-99fe-525400f775ce; 
LGUID=20180914133622-1d5596f3-b7e0-11e8-99fe-525400f775ce; 
showExpriedIndex=1; showExpriedCompanyHome=1; 
showExpriedMyPublish=1; hasDeliver=1; 
index_location_city=%E5%85%A8%E5%9B%BD; 
JSESSIONID=ABAAABAAAFCAAEG52161C740B05DA79D3CD7C30FAFE85A2; 
_gid=GA1.2.960840066.1537838157; 
X_HTTP_TOKEN=a949d9bc13e2814d18c7af9a6358088c; 
LG_LOGIN_USER_ID=dcdbad096b97504ea798f6af94679dff97decf2a465e3fdd3c844317a90ce628; 
_putrc=D8F61B9302D837FF123F89F2B170EADC; 
login=true; unick=%E5%BC%A0%E6%98%86; 
gate_login_token=9ea27fd87c922fcd35d70c6ec7b2632b7c9f5ceb0863337a2a3f316c35b78f8d; 
LGSID=20180925165120-2c1376fc-c0a0-11e8-a682-525400f775ce; 
Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1537857767,1537865480,1537865672,1537865689; 
TG-TRACK-CODE=search_code; SEARCH_ID=96538bec915549989cbcb229ab8e052e; 
LGRID=20180925173103-b885a3f4-c0a5-11e8-a685-525400f775ce; 
Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1537867864'


In[100]:

pcUserAgent = [
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0);",
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)",
":Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",
"User-Agent:Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",
"User-Agent:Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11",
"User-Agent:Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11",
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser)",
"User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"
]


In[101]:

# 定义essay-headers
import random
essay-headers_zk = {
    'Accept''text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
    'Accept-Encoding''gzip, deflate, br',
    'Accept-Language''en-US,en;q=0.9',
    'ache-Control''max-age=0',
    'Connection''colse',
    'Cookie':co_zk,
    'Host':'www.lagou.com',
    'Upgrade-Insecure-Requests''1',
    'User-Agent':random.sample(pcUserAgent, 1)[0]
#     'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, 
#                 like Gecko) Ubuntu Chromium/68.0.3440.106 Chrome/68.0.3440.106 Safari/537.36'  
}


按照公司规模依次爬取数据、整理和存储

15以下

In[120]:

id_list = list_bj01
job1 = list()
soups = list()
for i in range(0, len(id_list)):
    print('第{:>3}  个:'.format(i))
    res = requests.get('https://www.lagou.com/jobs/'+str(id_list[i])+'.html', essay-headers=essay-headers_zk)
    print('https://www.lagou.com/jobs/'+str(id_list[i])+'.html')
    print(res)
    res = res.content.decode('utf-8')
    # 网页转化为soup对象

    soup=BeautifulSoup(res,'html.parser')
    soups.append(soup)
    # 定义列表,存储 i 个公司信息
    job_i = []
    # 获取公司名
    try:
        company_name = soup.find('div', class_="company").string.split('招聘')[0]
        print(company_name)
        job_i.append(company_name) 
    except AttributeError:
        continue
    # 获取公司规模 
    list_num = len(soup.find_all('ul', class_='c_feature')[0].find_all('li'))
    if list_num == 4:
        guimo = soup.find_all('ul', class_='c_feature')[0].find_all('li')[2].text.split('领域')[0].replace(' ''').replace(' ''').split('人')[0]
    else:
        guimo = soup.find_all('ul', class_='c_feature')[0].find_all('li')[3].text.split('领域')[0].replace(' ''').replace(' ''').split('人')[0]
    job_i.append(guimo)  
    # 获取公司行业
    hangye = soup.find_all('ul', class_='c_feature')[0].find_all('li')[0].text.split('领域')[0].replace(' ''').replace(' ''')
    job_i.append(hangye)
    # 获取职位名
    job_name = soup.find_all('span', class_='name')[0].string
    job_i.append(job_name)
    # 5项列表
    five_list = [a.contents for a in soup.select('dd')[0].find_all('span')]
    # 获取薪资
    salary = five_list[0][0]
    job_i.append(salary)
    # 获取地址
    city = five_list[1][0].replace('/''')
    job_i.append(city)
    # 获取经验
    jy = five_list[2][0].replace('/''')
    job_i.append(jy)
    # 获取学历
    xl = five_list[3][0].replace('/''')
    job_i.append(xl)
    # 获取工作类型
    leixing = five_list[4][0]
    job_i.append(leixing)
    # 获取工作详情
    jieshao = soup.select('dl')[0].text.split('工作地址')[0].replace(' ''').replace(' ''').split('职位描述:')[-1]
    job_i.append(jieshao)
    job1.append(job_i)
    time.sleep(0)

第0个:https://www.lagou.com/jobs/5133698.html第1个:https://www.lagou.com/jobs/5125993.html英特美迪研发部第2个:https://www.lagou.com/jobs/5170395.html印迹第3个:https://www.lagou.com/jobs/5195454.html第4个:https://www.lagou.com/jobs/3384529.html真机智能研发部

In[121]:

df = pd.DataFrame(data = job1 ,columns = ['公司名','公司规模''公司行业''职位名','薪资','地址','经验','学历','工作类型','职位要求'])   
df.to_csv('job_csv/job_bj01.csv',index = False)  
print('已保存为csv文件.'

已保存为csv文件。

15-50

In[122]:

id_list = list_bj02
job2 = list()
soups = list()
for i in range(0, len(id_list)):
    print('第{:>3}  个:'.format(i))
    res = requests.get('https://www.lagou.com/jobs/'+str(id_list[i])+'.html', essay-headers=essay-headers_zk)
    print('https://www.lagou.com/jobs/'+str(id_list[i])+'.html')
    print(res)
    res = res.content.decode('utf-8')
    # 网页转化为soup对象

    soup=BeautifulSoup(res,'html.parser')
    soups.append(soup)
    # 定义列表,存储 i 个公司信息
    job_i = []
    # 获取公司名
    try:
        company_name = soup.find('div', class_="company").string.split('招聘')[0]
        print(company_name)
        job_i.append(company_name) 
        print(job_i)
    except AttributeError:
        continue
    # 获取公司规模 
    list_num = len(soup.find_all('ul', class_='c_feature')[0].find_all('li'))
    if list_num == 4:
        guimo = soup.find_all('ul', class_='c_feature')[0].find_all('li')[2].text.split('领域')[0].replace(' ''').replace(' ''').split('人')[0]
    else:
        guimo = soup.find_all('ul', class_='c_feature')[0].find_all('li')[3].text.split('领域')[0].replace(' ''').replace(' ''').split('人')[0]
    job_i.append(guimo)  
    # 获取公司行业
    hangye = soup.find_all('ul', class_='c_feature')[0].find_all('li')[0].text.split('领域')[0].replace(' ''').replace(' ''')
    job_i.append(hangye)
    # 获取职位名
    job_name = soup.find_all('span', class_='name')[0].string
    job_i.append(job_name)
    # 5项列表
    five_list = [a.contents for a in soup.select('dd')[0].find_all('span')]
    # 获取薪资
    salary = five_list[0][0]
    job_i.append(salary)
    # 获取地址
    city = five_list[1][0].replace('/''')
    job_i.append(city)
    # 获取经验
    jy = five_list[2][0].replace('/''')
    job_i.append(jy)
    # 获取学历
    xl = five_list[3][0].replace('/''')
    job_i.append(xl)
    # 获取工作类型
    leixing = five_list[4][0]
    job_i.append(leixing)
    # 获取工作详情
    jieshao = soup.select('dl')[0].text.split('工作地址')[0].replace(' ''').replace(' ''').split('职位描述:')[-1]
    job_i.append(jieshao)
    job2.append(job_i)
    time.sleep(0)

第  0 个:https://www.lagou.com/jobs/4996977.html

DeepMotion深动科技研发部

['DeepMotion深动科技研发部']

第  1  个:https://www.lagou.com/jobs/4952035.html

homi研发部

['homi研发部']

第  2  个:https://www.lagou.com/jobs/4907088.html

第  3  个:https://www.lagou.com/jobs/4952120.html

homi研发部

['homi研发部']

第  4  个:https://www.lagou.com/jobs/4655430.html

INDEMIND

['INDEMIND']

第  5  个:https://www.lagou.com/jobs/4129192.html

mioto喵图算法部

['mioto喵图算法部']

第  6  个:https://www.lagou.com/jobs/4899463.html

MT科技

['MT科技']

第  7  个:https://www.lagou.com/jobs/4900592.html

MT科技

['MT科技']

第  8  个:https://www.lagou.com/jobs/4900769.html

MT科技

['MT科技']

第  9  个:https://www.lagou.com/jobs/4639297.html

NovuMind Inc.研发部

['NovuMind Inc.研发部']

第 10  个:https://www.lagou.com/jobs/5134572.html

第 11  个:https://www.lagou.com/jobs/4951368.html

Woobo产品技术

['Woobo产品技术']

第 12  个:https://www.lagou.com/jobs/5099682.html

阿特斯

['阿特斯']

第 13  个:https://www.lagou.com/jobs/3852129.html

奥本未来研发部

['奥本未来研发部']

第 14  个:https://www.lagou.com/jobs/5146243.html

百炼智能

['百炼智能']

第 15  个:https://www.lagou.com/jobs/5149569.html

百炼智能

['百炼智能']

第 16  个:https://www.lagou.com/jobs/5118560.html

北京飞澈科技有限公司

['北京飞澈科技有限公司']

第 17  个:https://www.lagou.com/jobs/4467713.html

北京飞澈科技有限公司

['北京飞澈科技有限公司']

第 18  个:https://www.lagou.com/jobs/4467883.html

北京飞澈科技有限公司

['北京飞澈科技有限公司']

第 19  个:https://www.lagou.com/jobs/5162991.html

北京眸视

['北京眸视']

第 20  个:https://www.lagou.com/jobs/3528916.html

小白世纪研发部

['小白世纪研发部']

第 21  个:https://www.lagou.com/jobs/4736472.html

第 22  个:https://www.lagou.com/jobs/4736491.html

小白世纪深度学习

['小白世纪深度学习']

第 23  个:https://www.lagou.com/jobs/5171496.html

北京语知科技有限公司

['北京语知科技有限公司']

第 24  个:https://www.lagou.com/jobs/4760184.html

布本智能研发部

['布本智能研发部']

第 25  个:https://www.lagou.com/jobs/4167858.html

大视景研发部

['大视景研发部']

第 26  个:https://www.lagou.com/jobs/5142122.html

道口金科

['道口金科']

第 27  个:https://www.lagou.com/jobs/4108874.html

迪路科技研发

['迪路科技研发']

第 28  个:https://www.lagou.com/jobs/4436958.html

迪路科技研发

['迪路科技研发']

第 29  个:https://www.lagou.com/jobs/3528017.html

帝派智能研发部

['帝派智能研发部']

第 30  个:https://www.lagou.com/jobs/5198217.html

动吧体育

['动吧体育']

第 31  个:https://www.lagou.com/jobs/5197834.html

第 32  个:https://www.lagou.com/jobs/4879620.html

第 33  个:https://www.lagou.com/jobs/5069661.html

感易智能核心技术研发部

['感易智能核心技术研发部']

第 34  个:https://www.lagou.com/jobs/5069720.html

感易智能核心技术研发部

['感易智能核心技术研发部']

第 35  个:https://www.lagou.com/jobs/5144233.html

广州笨笨

['广州笨笨']

第 36  个:https://www.lagou.com/jobs/4980311.html

泛娱乐精品内容孵化公司产品技术部

['泛娱乐精品内容孵化公司产品技术部']

第 37  个:https://www.lagou.com/jobs/5017549.html

第 38  个:https://www.lagou.com/jobs/5017553.html

汉云益生

['汉云益生']

第 39  个:https://www.lagou.com/jobs/4624866.html

汉云益生

['汉云益生']

第 40  个:https://www.lagou.com/jobs/3898924.html

虎鲸科技研发

['虎鲸科技研发']

第 41  个:https://www.lagou.com/jobs/5197960.html

虎鲸科技

['虎鲸科技']

第 42  个:https://www.lagou.com/jobs/3788680.html

虎鲸科技R&D;

['虎鲸科技R&D;']

第 43  个:https://www.lagou.com/jobs/4288237.html

华云智能(北京)科技有限公司算法研发

['华云智能(北京)科技有限公司算法研发']

第 44  个:https://www.lagou.com/jobs/4288229.html

第 45  个:https://www.lagou.com/jobs/5091249.html

第 46  个:https://www.lagou.com/jobs/2709509.html

极限元技术部

['极限元技术部']

第 47  个:https://www.lagou.com/jobs/2645980.html

第 48  个:https://www.lagou.com/jobs/4729560.html

易车文化

['易车文化']

第 49  个:https://www.lagou.com/jobs/4178304.html

康夫子技术部

['康夫子技术部']

第 50  个:https://www.lagou.com/jobs/4178329.html

第 51  个:https://www.lagou.com/jobs/4754888.html

康夫子

['康夫子']

第 52  个:https://www.lagou.com/jobs/4883053.html

客知音技术团队

['客知音技术团队']

第 53  个:https://www.lagou.com/jobs/5114881.html

跨运达货运资讯客户端

['跨运达货运资讯客户端']

第 54  个:https://www.lagou.com/jobs/4222128.html

零秒科技研发部

['零秒科技研发部']

第 55  个:https://www.lagou.com/jobs/4019580.html

零秒科技技术部

['零秒科技技术部']

第 56  个:https://www.lagou.com/jobs/4222179.html

零秒科技研发部

['零秒科技研发部']

第 57  个:https://www.lagou.com/jobs/4704481.html

领骏科技

['领骏科技']

第 58  个:https://www.lagou.com/jobs/5080398.html

轮子科技NLP算法部

['轮子科技NLP算法部']

第 59  个:https://www.lagou.com/jobs/4751259.html

蒙特卡洛人工智能部

['蒙特卡洛人工智能部']

第 60  个:https://www.lagou.com/jobs/5159780.html

秒帧TV数据部

['秒帧TV数据部']

第 61  个:https://www.lagou.com/jobs/4940029.html

墨云科技

['墨云科技']

第 62  个:https://www.lagou.com/jobs/5174520.html

第 63  个:https://www.lagou.com/jobs/5099813.html

能量吧推荐部

['能量吧推荐部']

第 64  个:https://www.lagou.com/jobs/5086331.html

能量吧

['能量吧']

第 65  个:https://www.lagou.com/jobs/5043302.html

诺信创联技术部

['诺信创联技术部']

第 66  个:https://www.lagou.com/jobs/5159899.html

葡萄智学

['葡萄智学']

第 67  个:https://www.lagou.com/jobs/5159934.html

葡萄智学

['葡萄智学']

第 68  个:https://www.lagou.com/jobs/5159921.html

葡萄智学

['葡萄智学']

第 69  个:https://www.lagou.com/jobs/2566070.html

第 70  个:https://www.lagou.com/jobs/2858686.html

奇点机智技术

['奇点机智技术']

第 71  个:https://www.lagou.com/jobs/2858767.html

奇点机智技术

['奇点机智技术']

第 72  个:https://www.lagou.com/jobs/4568985.html

清帆科技感知计算组

['清帆科技感知计算组']

第 73  个:https://www.lagou.com/jobs/4569082.html

清帆科技感知计算组

['清帆科技感知计算组']

第 74  个:https://www.lagou.com/jobs/4532923.html

清帆科技感知计算组

['清帆科技感知计算组']

第 75  个:https://www.lagou.com/jobs/3963395.html

第 76  个:https://www.lagou.com/jobs/5063962.html

清帆科技感知计算组

['清帆科技感知计算组']

第 77  个:https://www.lagou.com/jobs/4700906.html

任你说研发部

['任你说研发部']

第 78  个:https://www.lagou.com/jobs/4541052.html

任你说研发部

['任你说研发部']

第 79  个:https://www.lagou.com/jobs/4421028.html

融汇

['融汇']

第 80  个:https://www.lagou.com/jobs/4068534.html

北京睿企信息科技有限公司产品技术部

['北京睿企信息科技有限公司产品技术部']

第 81  个:https://www.lagou.com/jobs/4406224.html

北京睿企信息科技有限公司

['北京睿企信息科技有限公司']

第 82  个:https://www.lagou.com/jobs/3496435.html

睿思奥图研发部

['睿思奥图研发部']

第 83  个:https://www.lagou.com/jobs/5107267.html

觉非科技

['觉非科技']

第 84  个:https://www.lagou.com/jobs/5107266.html

觉非科技

['觉非科技']

第 85  个:https://www.lagou.com/jobs/5102435.html

觉非科技技术部

['觉非科技技术部']

第 86  个:https://www.lagou.com/jobs/3065614.html

深度好奇自然语言理解

['深度好奇自然语言理解']

第 87  个:https://www.lagou.com/jobs/3147354.html

深感科技算法研发

['深感科技算法研发']

第 88  个:https://www.lagou.com/jobs/2081697.html

深图智服DEEPIR

['深图智服DEEPIR']

第 89  个:https://www.lagou.com/jobs/2081680.html

深图智服DEEPIR

['深图智服DEEPIR']

第 90  个:https://www.lagou.com/jobs/2049393.html

第 91  个:https://www.lagou.com/jobs/2049383.html

第 92  个:https://www.lagou.com/jobs/4726994.html

时度检测ai中心

['时度检测ai中心']

第 93  个:https://www.lagou.com/jobs/4687406.html

时度检测智能创新业务部

['时度检测智能创新业务部']

第 94  个:https://www.lagou.com/jobs/2981117.html

思图场景技术部

['思图场景技术部']

第 95  个:https://www.lagou.com/jobs/4774000.html

贪心科技研发

['贪心科技研发']

第 96  个:https://www.lagou.com/jobs/4656886.html

探境科技

['探境科技']

第 97  个:https://www.lagou.com/jobs/5057860.html

图湃影像技术部

['图湃影像技术部']

第 98  个:https://www.lagou.com/jobs/4470750.html

未动科技研发部

['未动科技研发部']

第 99  个:

https://www.lagou.com/jobs/3880724.html

未动科技研发部

['未动科技研发部']

第100  个:https://www.lagou.com/jobs/4576266.html

香侬科技技术部

['香侬科技技术部']

第101  个:https://www.lagou.com/jobs/4114710.html

第102  个:https://www.lagou.com/jobs/5177948.html

兴承科技技术部-软件组

['兴承科技技术部-软件组']

第103  个:https://www.lagou.com/jobs/4755483.html

雪扬科技

['雪扬科技']

第104  个:https://www.lagou.com/jobs/4900846.html

曜辉科技研发部

['曜辉科技研发部']

第105  个:https://www.lagou.com/jobs/4084909.html

医准智能算法组

['医准智能算法组']

第106  个:https://www.lagou.com/jobs/2860345.html

依通科技研发部

['依通科技研发部']

第107  个:https://www.lagou.com/jobs/4823463.html

颐圣智能

['颐圣智能']

第108  个:https://www.lagou.com/jobs/4579008.html

第109  个:https://www.lagou.com/jobs/4667070.html

昱然智能研发部

['昱然智能研发部']

第110  个:https://www.lagou.com/jobs/4606387.html

泽泰征信

['泽泰征信']

第111  个:https://www.lagou.com/jobs/4163571.html

增强智能技术部

['增强智能技术部']

第112  个:https://www.lagou.com/jobs/4653762.html

兆瑞财智研发部

['兆瑞财智研发部']

第113  个:https://www.lagou.com/jobs/3576921.html

多媒体处理技术技术部

['多媒体处理技术技术部']

第114  个:https://www.lagou.com/jobs/4120281.html

主线科技自动驾驶

['主线科技自动驾驶']

第115  个:https://www.lagou.com/jobs/4870494.html

主线科技

['主线科技']

第116  个:https://www.lagou.com/jobs/4671460.html

卓视智通

['卓视智通']

第117  个:https://www.lagou.com/jobs/3820347.html

卓视智通研发部

['卓视智通研发部']

第118  个:https://www.lagou.com/jobs/5153736.html

紫光智能技术部

['紫光智能技术部']




In[123]:

df = pd.DataFrame(data = job2 ,columns = ['公司名','公司规模''公司行业''职位名','薪资','地址','经验','学历','工作类型','职位要求'])   
df.to_csv('job_csv/job_bj02.csv',index = False)
print('已保存为csv文件.'

已保存为csv文件。


50-150

In[124]:

id_list = list_bj03
job3 = list()
soups = list()
for i in range(0, len(id_list)):
    print('第{:>3}  个:'.format(i))
    res = requests.get('https://www.lagou.com/jobs/'+str(id_list[i])+'.html', essay-headers=essay-headers_zk)
    print('https://www.lagou.com/jobs/'+str(id_list[i])+'.html')
    print(res)
    res = res.content.decode('utf-8')
    # 网页转化为soup对象

    soup=BeautifulSoup(res,'html.parser')
    soups.append(soup)
    # 定义列表,存储 i 个公司信息
    job_i = []
    # 获取公司名
    try:
        company_name = soup.find('div', class_="company").string.split('招聘')[0]
        print(company_name)
        job_i.append(company_name) 
    except AttributeError:
        continue
    # 获取公司规模 
    list_num = len(soup.find_all('ul', class_='c_feature')[0].find_all('li'))
    if list_num == 4:
        guimo = soup.find_all('ul', class_='c_feature')[0].find_all('li')[2].text.split('领域')[0].replace(' ''').replace(' ''').split('人')[0]
    else:
        guimo = soup.find_all('ul', class_='c_feature')[0].find_all('li')[3].text.split('领域')[0].replace(' ''').replace(' ''').split('人')[0]
    job_i.append(guimo)  
    # 获取公司行业
    hangye = soup.find_all('ul', class_='c_feature')[0].find_all('li')[0].text.split('领域')[0].replace(' ''').replace(' ''')
    job_i.append(hangye)
    # 获取职位名
    job_name = soup.find_all('span', class_='name')[0].string
    job_i.append(job_name)
    # 5项列表
    five_list = [a.contents for a in soup.select('dd')[0].find_all('span')]
    # 获取薪资
    salary = five_list[0][0]
    job_i.append(salary)
    # 获取地址
    city = five_list[1][0].replace('/''')
    job_i.append(city)
    # 获取经验
    jy = five_list[2][0].replace('/''')
    job_i.append(jy)
    # 获取学历
    xl = five_list[3][0].replace('/''')
    job_i.append(xl)
    # 获取工作类型
    leixing = five_list[4][0]
    job_i.append(leixing)
    # 获取工作详情
    jieshao = soup.select('dl')[0].text.split('工作地址')[0].replace(' ''').replace(' ''').split('职位描述:')[-1]
    job_i.append(jieshao)
    job3.append(job_i)
    time.sleep(0)

第  0  个:https://www.lagou.com/jobs/2575759.html
ZingFront智线技术部
第  1  个:https://www.lagou.com/jobs/2644291.html
ZingFront智线技术
第  2  个:https://www.lagou.com/jobs/4455397.html
第  3  个:https://www.lagou.com/jobs/4646027.html
上海摩象网络科技有限公司
第  4  个:https://www.lagou.com/jobs/4669320.html
上海摩象网络科技有限公司
第  5  个:https://www.lagou.com/jobs/5171649.html
重庆荆棘鸟科技有限公司
第  6  个:https://www.lagou.com/jobs/4967367.html
HoloMatic
第  7  个:https://www.lagou.com/jobs/5138408.html
格联装饰前瞻智能系统部
第  8  个:https://www.lagou.com/jobs/5037973.html
Yi+
第  9  个:https://www.lagou.com/jobs/2942478.html
Yi+技术
第 10  个:https://www.lagou.com/jobs/2945312.html
中科虹霸研发部
第 11  个:https://www.lagou.com/jobs/3386347.html
健康有益AI中心
第 12  个:https://www.lagou.com/jobs/4856268.html
第 13  个:https://www.lagou.com/jobs/5009789.html
佳讯飞鸿智能科技研究院
第 14  个:https://www.lagou.com/jobs/4621691.html
黑咔相机
第 15  个:https://www.lagou.com/jobs/3617969.html
艾耕科技研发部(算法team)
第 16  个:https://www.lagou.com/jobs/4929580.html
创新奇智视觉组
第 17  个:https://www.lagou.com/jobs/5135041.html
博维恒信科技
第 18  个:https://www.lagou.com/jobs/2575759.html
ZingFront智线技术部
第 19  个:https://www.lagou.com/jobs/4113258.html
Aibee技术部
第 20  个:https://www.lagou.com/jobs/5198512.html
Aibee
第 21  个:https://www.lagou.com/jobs/4009867.html
深思考人工智能机器人CV
第 22  个:https://www.lagou.com/jobs/4120188.html
小鸿科技互联网事业部
第 23  个:https://www.lagou.com/jobs/4895431.html
驭势科技视觉前瞻
第 24  个:https://www.lagou.com/jobs/4969475.html
闻善科技2012实验室-中央硬件工程院
第 25  个:https://www.lagou.com/jobs/5143109.html
东舟
第 26  个:https://www.lagou.com/jobs/3807817.html
第 27  个:https://www.lagou.com/jobs/5071345.html
慧拓智能研究院
第 28  个:https://www.lagou.com/jobs/4092735.html
nreal.ai技术研发部
第 29  个:https://www.lagou.com/jobs/4766455.html
水滴科技
第 30  个:https://www.lagou.com/jobs/4910868.html
水滴科技
第 31  个:https://www.lagou.com/jobs/4682721.html
触景无限
第 32  个:https://www.lagou.com/jobs/3314576.html
Airdoc研发
第 33  个:https://www.lagou.com/jobs/5092510.html
国承万通研发部
第 34  个:https://www.lagou.com/jobs/5133499.html
中科奥森
第 35  个:https://www.lagou.com/jobs/4600099.html
博云视觉智能安防事业部
第 36  个:https://www.lagou.com/jobs/4680848.html
华慧视科技研发部
第 37  个:https://www.lagou.com/jobs/5130128.html
兆讯微电子开发部
第 38  个:https://www.lagou.com/jobs/4024906.html
第 39  个:https://www.lagou.com/jobs/3614336.html
安易信研发中心
第 40  个:https://www.lagou.com/jobs/5056372.html
核心互联
第 41  个:https://www.lagou.com/jobs/2985329.html
聚力维度科幻成真实验室
第 42  个:https://www.lagou.com/jobs/5080187.html
智加科技
第 43  个:https://www.lagou.com/jobs/5171237.html
亮道智能汽车
第 44  个:https://www.lagou.com/jobs/4969376.html
远度
第 45  个:https://www.lagou.com/jobs/4969027.html
远度
第 46  个:https://www.lagou.com/jobs/4332402.html
云脑科技AI软件研发部
第 47  个:https://www.lagou.com/jobs/5148150.html
联拓世纪技术部
第 48  个:https://www.lagou.com/jobs/4546128.html
晶泰科技研发部
第 49  个:https://www.lagou.com/jobs/3346053.html
皓瞳科技-HortaTech研发部
第 50  个:https://www.lagou.com/jobs/4009867.html
深思考人工智能机器人CV
第 51  个:https://www.lagou.com/jobs/5014488.html
第 52  个:https://www.lagou.com/jobs/2925156.html
第 53  个:https://www.lagou.com/jobs/3473615.html
梅卡曼德研发
第 54  个:https://www.lagou.com/jobs/4953112.html
第 55  个:https://www.lagou.com/jobs/4856575.html
阿丘科技研发部
第 56  个:https://www.lagou.com/jobs/5171237.html
亮道智能汽车
第 57  个:https://www.lagou.com/jobs/5162826.html
第 58  个:https://www.lagou.com/jobs/4783626.html
糖豆
第 59  个:https://www.lagou.com/jobs/4168872.html
Soul App技术部
第 60  个:https://www.lagou.com/jobs/5183701.html
创投梦工场技术部
第 61  个:https://www.lagou.com/jobs/4583628.html
ULSee
第 62  个:https://www.lagou.com/jobs/5055808.html
志诺维思
第 63  个:https://www.lagou.com/jobs/5138408.html
格联装饰前瞻智能系统部
第 64  个:https://www.lagou.com/jobs/2259914.html
开易科技
第 65  个:https://www.lagou.com/jobs/4044947.html
第 66  个:https://www.lagou.com/jobs/5094575.html
橙家装饰
第 67  个:https://www.lagou.com/jobs/4927733.html
MYNTAI小觅智能研发
第 68  个:https://www.lagou.com/jobs/5031227.html
第 69  个:https://www.lagou.com/jobs/4897451.html
第 70  个:https://www.lagou.com/jobs/1695062.html
嘉恒图像研发部
第 71  个:https://www.lagou.com/jobs/4536675.html
第 72  个:https://www.lagou.com/jobs/4892627.html
土豆数据研发中心
第 73  个:https://www.lagou.com/jobs/4820965.html
开拓天际产品研发部
第 74  个:https://www.lagou.com/jobs/5172369.html
爱满分技术部
第 75  个:https://www.lagou.com/jobs/4750965.html
中科博宏
第 76  个:https://www.lagou.com/jobs/4840557.html
第 77  个:https://www.lagou.com/jobs/4024906.html


In[125]:

df = pd.DataFrame(data = job3 ,columns = ['公司名','公司规模''公司行业''职位名','薪资','地址','经验','学历','工作类型','职位要求'])   
df.to_csv('job_csv/job_bj03.csv',index = False)  
print('已保存为csv文件.'

已保存为csv文件。


将以上数据稍作清洗,汇总

这一部分手工实现,将以上表格整理为job_csv文夹下job_total.csv文件


进行数据分析

思路

  • 将表格数据读入pandas中,内容详情在第9列

  • 根据需求设置不同关键词,如果关键词在每个职位的9列中,相应票数+1, break跳出

  • 为避免大小写误差,所有转化为小写后比较

  • matplotlib不能识别中文,关键词用英文替代


实现

In[1]:

'''导入相关的包'''
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from pylab import *
%matplotlib inline
warnings.filterwarnings("ignore")


读取数据

In[2]:

'''将数据从 csv 到 pandas'''
a = pd.read_csv('job_total.csv')
print(a.shape)
%matplotlib inline
# 展示前5个数据
a.head()

(260, 11)

Out[2]:


定义搜索词

In[3]:

'''定义相关搜索词'''
# 定义了9组搜索词 
# 如果是包含汉字的话,需要转化为英文表述

# 内容分类
test_01 = [['图像'],['视频'],['三维','3d'],['二维','2D']]
test_01_p = ['image','video','3D','2D']

# 方向分类
test_02 = ['分类','识别','检测','分割','跟踪','OCR','理解']
test_02_p = ['classification','recognition','detection','segmentation','tracking'
             'OCR','understanding']
# 语言分类
test_03 = ['python','C/C++','matlab','opencv','gpu','linux','shell','cuda']

# 框架分类
test_04 = ['tensorflow','caffe','torch','paddle','theano','mxnet','currennt']

# 常见模型分类
test_05 = ['cnn','dnn','lstm','rnn',]

# 分类方向细分
test_06 = [['分类'], ['目标分类'], ['图像分类','图片分类'], ['物体分类','物品分类'], ['视频分类',], 
           ['动作分类','行为分类'], ['场景分类'], ['人脸分类']]
test_06_p = ['classification''target''Image''object''video'
             'behavior''scenen''face']
# 识别方向细分
test_07 = [['识别'], ['目标识别'], ['图像识别','图片识别'], ['物体识别','物品识别'], 
           ['视频识别',], ['动作分类','行为分类'], ['场景分类'], 
           ['人脸识别'], ['模式识别'], ['特征点识别'], 
           ['生物特征识别'], ['车辆识别''车牌识别''车标识别''车型识别',], ['字体''手写']]
test_07_p = ['recognition''target''image''object'
            'video''behavior''scenen'
            'face''pattern''feature points'
             'biological characteristics''vehicle''character']
# 检测方向细分
test_08 = [['检测'], ['目标检测'], ['图像检测','图片检测'], ['物体检测','物品检测'], 
           ['视频检测',], ['动作检测','行为检测''姿态检测'], ['场景检测'], 
           ['人脸检测''人脸属性检测'], ['人体检测'], ['关键点检测'], 
           ['车辆检测''车牌检测''车标检测''车型检测',], ['字体''手写']]
test_08_p = ['detection''target''image''object'
            'video''behavior''scenen'
            'face''human body''feature points'
             'vehicle''character']
# 分割方向细分
test_09 = [['分割'], ['目标分割'], ['图像分割','图片分割'], ['物体分割','物品分割'], 
           ['语义分割',], ['影像分割'], ['场景分割'], 
           ['细胞分割']]
test_09_p = ['segmentation''target''image''object'
            'semantic''imaging''scenen'
            'cell']

# 设置相应的投票数都为0
n01 = [0]*len(test_01)
n02 = [0]*len(test_02)
n03 = [0]*len(test_03)
n04 = [0]*len(test_04)
n05 = [0]*len(test_05)
n06 = [0]*len(test_06)
n07 = [0]*len(test_07)
n08 = [0]*len(test_08)
n09 = [0]*len(test_09)


循环累加投票

In[4]:

'''循环进行投票'''

for i in range(len(a.iloc[:,9])):
    # 01
    for idx, j in enumerate(test_01):
        for k in j:
            if k.lower() in a.iloc[:,9][i].lower():
                n01[idx] += 1
                break
    # 02
    for idx, j in enumerate(test_02):
        if j.lower() in a.iloc[:,9][i].lower():
            n02[idx] += 1  
    # 03
    for idx, j in enumerate(test_03):
        if j.lower() in a.iloc[:,9][i].lower():
            n03[idx] += 1
    # 04
    for idx, j in enumerate(test_04):
        if j.lower() in a.iloc[:,9][i].lower():
            n04[idx] += 1        
    # 05
    for idx, j in enumerate(test_05):
        if j.lower() in a.iloc[:,9][i].lower():
            n05[idx] += 1

    # 06
    for idx, j in enumerate(test_06):
        for k in j:
            if k.lower() in a.iloc[:,9][i].lower():
                n06[idx] += 1
                break           
    # 07
    for idx, j in enumerate(test_07):
        for k in j:
            if k.lower() in a.iloc[:,9][i].lower():
                n07[idx] += 1
                break       
    # 08
    for idx, j in enumerate(test_08):
        for k in j:
            if k.lower() in a.iloc[:,9][i].lower():
                n08[idx] += 1
                break    
    # 09
    for idx, j in enumerate(test_09):
        for k in j:
            if k.lower() in a.iloc[:,9][i].lower():
                n09[idx] += 1
                break   


投票结果可视化

In[5]:

'''01内容分类'''
plt.figure(figsize=(64))
# mpl.rcParams['font.sans-serif'] = ['SimHei']
p2 = plt.bar(np.arange(len(n01)), n01, 0.1, label="rainfall", color="#87CEFA")
plt.xticks(np.arange(len(n01)), test_01_p, rotation=90)
x = range(len(n01))
y = n01
for aa, bb in zip (x, y):
    plt.text(aa, bb+0.05'%.0f' % bb, ha='center', va= 'bottom',fontsize=8)
plt.show()

'''02方向'''
plt.figure(figsize=(124))
# mpl.rcParams['font.sans-serif'] = ['SimHei']
p2 = plt.bar(np.arange(len(n02)), n02, 0.1, label="rainfall", color="#87CEFA")
plt.xticks(np.arange(len(n02)), test_02_p, rotation=90)
x = range(len(n02))
y = n02
for aa, bb in zip (x, y):
    plt.text(aa, bb+0.05'%.0f' % bb, ha='center', va= 'bottom',fontsize=8)
plt.show()

'''03语言'''
plt.figure(figsize=(124))
# mpl.rcParams['font.sans-serif'] = ['SimHei']
p2 = plt.bar(np.arange(len(n03)), n03, 0.1, label="rainfall", color="#87CEFA")
plt.xticks(np.arange(len(n03)), test_03, rotation=90)
x = range(len(n03))
y = n03
for aa, bb in zip (x, y):
    plt.text(aa, bb+0.05'%.0f' % bb, ha='center', va= 'bottom',fontsize=8)
plt.show()

'''04框架'''
plt.figure(figsize=(124))
# mpl.rcParams['font.sans-serif'] = ['SimHei']
p2 = plt.bar(np.arange(len(n04)), n04, 0.1, label="rainfall", color="#87CEFA")
plt.xticks(np.arange(len(n04)), test_04, rotation=90)
x = range(len(n04))
y = n04
for aa, bb in zip (x, y):
    plt.text(aa, bb+0.05'%.0f' % bb, ha='center', va= 'bottom',fontsize=8)
plt.show()

'''05模型'''
plt.figure(figsize=(64))
# mpl.rcParams['font.sans-serif'] = ['SimHei']
p2 = plt.bar(np.arange(len(n05)), n05, 0.1, label="rainfall", color="#87CEFA")
plt.xticks(np.arange(len(n05)), test_05, rotation=90)
x = range(len(n05))
y = n05
for aa, bb in zip (x, y):
    plt.text(aa, bb+0.05'%.0f' % bb, ha='center', va= 'bottom',fontsize=8)
plt.show()

'''06分类'''
plt.figure(figsize=(124))
# mpl.rcParams['font.sans-serif'] = ['SimHei']
p2 = plt.bar(np.arange(len(n06)), n06, 0.1, label="rainfall", color="#87CEFA")
plt.xticks(np.arange(len(n06)), test_06_p, rotation=90)
x = range(len(n06))
y = n06
for aa, bb in zip (x, y):
    plt.text(aa, bb+0.05'%.0f' % bb, ha='center', va= 'bottom',fontsize=8)
plt.show()

'''07识别'''
plt.figure(figsize=(124))
# mpl.rcParams['font.sans-serif'] = ['SimHei']
p2 = plt.bar(np.arange(len(n07)), n07, 0.1, label="rainfall", color="#87CEFA")
plt.xticks(np.arange(len(n07)), test_07_p, rotation=90)
x = range(len(n07))
y = n07
for aa, bb in zip (x, y):
    plt.text(aa, bb+0.05'%.0f' % bb, ha='center', va= 'bottom',fontsize=8)
plt.show()

'''08检测'''
plt.figure(figsize=(124))
# mpl.rcParams['font.sans-serif'] = ['SimHei']
p2 = plt.bar(np.arange(len(n08)), n08, 0.1, label="rainfall", color="#87CEFA")
plt.xticks(np.arange(len(n08)), test_08_p, rotation=90)
x = range(len(n08))
y = n08
for aa, bb in zip (x, y):
    plt.text(aa, bb+0.05'%.0f' % bb, ha='center', va= 'bottom',fontsize=8)
plt.grid(axis='y', ls='--', alpha=0.3, )
plt.show()

'''09分割'''
plt.figure(figsize=(124))
# mpl.rcParams['font.sans-serif'] = ['SimHei']
p2 = plt.bar(np.arange(len(n09)), n09, 0.1, label="rainfall", color="#87CEFA")
plt.xticks(np.arange(len(n09)), test_09_p, rotation=90)
x = range(len(n09))
y = n09
for aa, bb in zip (x, y):
    plt.text(aa, bb+0.05'%.0f' % bb, ha='center', va= 'bottom',fontsize=8)
plt.show()



所以结论是:

检测是目前CV领域最热门的职位需求

你猜对了吗?



目标检测是很多计算机视觉任务的基础,不论我们需要实现图像与文字的交互还是需要识别精细类别,它都提供了可靠的信息。图像分类、检测及分割是计算机视觉领域的三大任务。图像分类任务关心整体,给出的是整张图片的内容描述,而检测则关注特定的物体目标,要求同时获得这一目标的类别信息和位置信息。目标检测也是目前实际应用最多的AI技术,智能监控、交互式虚拟现实、高级人机交互、动作分析、自主导航、机器人视觉等,都离不开目标检测技术。



「人工智能前沿实战班」采取项目制实战演练+线下小班教学+一线科学家授课,在课程设置、师资配备、教学方法等方面全面秒杀市场上泛滥的普通AI培训课程,培养社会急需的人工智能技术人才。


首期实战班聚焦“目标检测”,将于12月22日在北京与您见面。


本期课程采取线下小班教学形式,最小化学习负担,最大化实战效果,带领学员不走弯路不踩坑,快速突进实战目标,并直接跟进这一领域最先进的前沿技术。


AI国家队提供师资

作业项目考核三管齐下

提供GPU云实验平台

最小化学习负担

源码级理解Faster R-CNN等多种算法

大厂内推实习机会

挑战中高级图像算法工程师

升职加薪

玩转AI

......



咨询&报名通道


扫描下方二维码

添加微信平平学姐

回复「实战班」

免费获取专属于你的课程资料

助你收割大厂Offer


提前掌握AI技术

抢先突破职场前沿


▼长按识别下方小程序报名



    发送中

    本站仅按申请收录文章,版权归原作者所有
    如若侵权,请联系本站删除
    觉得不错,分享给更多人看到