这个寒冬
你还好吗?
我们爬了北京市CV领域的职位需求
月薪从10K到100K
你知道最热的职位需求是什么吗?
。
。
。
。
。
。
不多说
放代码
1. 拉勾网通过关键字(图像、计算机视觉、算法、人工智能等)筛选出相应职位id,整理为列表
这一项工作手动实现
列表位于文件夹job_csv中(命名从15人规模到2000人规模依次为bj01.csv到bj06.csv)
2. 通过职位id列表爬取相应的详细页面内容
因为反爬等信息需要设置headers等
按照公司规模分批次爬取,分别保存在 job_csv文件夹下(命名从job_bj01.csv到job_bj06.csv)
3. 合并以上文件为job_csv文件夹下 job_total.csv文件,作为数据分析资料
4. 进行数据分析,由以下部分组成
读入数据
定义搜索词
搜索词投票
投票结果可视化
这一部分手工实现
# 导入相关库
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)
In[99]:
# 定义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]:
# 定义headers
import random
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', headers=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('\n', '').replace(' ', '').split('人')[0]
else:
guimo = soup.find_all('ul', class_='c_feature')[0].find_all('li')[3].text.split('领域')[0].replace('\n', '').replace(' ', '').split('人')[0]
job_i.append(guimo)
# 获取公司行业
hangye = soup.find_all('ul', class_='c_feature')[0].find_all('li')[0].text.split('领域')[0].replace('\n', '').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('\n', '').replace('\xa0', '').split('职位描述:')[-1]
job_i.append(jieshao)
job1.append(job_i)
time.sleep(0)
第0个:https://www.lagou.com/jobs/5133698.html<Response [200]> 第1个:https://www.lagou.com/jobs/5125993.html<Response [200]> 英特美迪研发部 第2个:https://www.lagou.com/jobs/5170395.html<Response [200]> 印迹 第3个:https://www.lagou.com/jobs/5195454.html<Response [200]> 第4个:https://www.lagou.com/jobs/3384529.html<Response [200]> 真机智能研发部
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', headers=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('\n', '').replace(' ', '').split('人')[0]
else:
guimo = soup.find_all('ul', class_='c_feature')[0].find_all('li')[3].text.split('领域')[0].replace('\n', '').replace(' ', '').split('人')[0]
job_i.append(guimo)
# 获取公司行业
hangye = soup.find_all('ul', class_='c_feature')[0].find_all('li')[0].text.split('领域')[0].replace('\n', '').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('\n', '').replace('\xa0', '').split('职位描述:')[-1]
job_i.append(jieshao)
job2.append(job_i)
time.sleep(0)
第 0 个:https://www.lagou.com/jobs/4996977.html<Response [200]>
DeepMotion深动科技研发部
['DeepMotion深动科技研发部']
第 1 个:https://www.lagou.com/jobs/4952035.html<Response [200]>
homi研发部
['homi研发部']
第 2 个:https://www.lagou.com/jobs/4907088.html<Response [200]>
第 3 个:https://www.lagou.com/jobs/4952120.html<Response [200]>
homi研发部
['homi研发部']
第 4 个:https://www.lagou.com/jobs/4655430.html<Response [200]>
INDEMIND
['INDEMIND']
第 5 个:https://www.lagou.com/jobs/4129192.html<Response [200]>
mioto喵图算法部
['mioto喵图算法部']
第 6 个:https://www.lagou.com/jobs/4899463.html<Response [200]>
MT科技
['MT科技']
第 7 个:https://www.lagou.com/jobs/4900592.html<Response [200]>
MT科技
['MT科技']
第 8 个:https://www.lagou.com/jobs/4900769.html<Response [200]>
MT科技
['MT科技']
第 9 个:https://www.lagou.com/jobs/4639297.html<Response [200]>
NovuMind Inc.研发部
['NovuMind Inc.研发部']
第 10 个:https://www.lagou.com/jobs/5134572.html<Response [200]>
第 11 个:https://www.lagou.com/jobs/4951368.html<Response [200]>
Woobo产品技术
['Woobo产品技术']
第 12 个:https://www.lagou.com/jobs/5099682.html<Response [200]>
阿特斯
['阿特斯']
第 13 个:https://www.lagou.com/jobs/3852129.html<Response [200]>
奥本未来研发部
['奥本未来研发部']
第 14 个:https://www.lagou.com/jobs/5146243.html<Response [200]>
百炼智能
['百炼智能']
第 15 个:https://www.lagou.com/jobs/5149569.html<Response [200]>
百炼智能
['百炼智能']
第 16 个:https://www.lagou.com/jobs/5118560.html<Response [200]>
北京飞澈科技有限公司
['北京飞澈科技有限公司']
第 17 个:https://www.lagou.com/jobs/4467713.html<Response [200]>
北京飞澈科技有限公司
['北京飞澈科技有限公司']
第 18 个:https://www.lagou.com/jobs/4467883.html<Response [200]>
北京飞澈科技有限公司
['北京飞澈科技有限公司']
第 19 个:https://www.lagou.com/jobs/5162991.html<Response [200]>
北京眸视
['北京眸视']
第 20 个:https://www.lagou.com/jobs/3528916.html<Response [200]>
小白世纪研发部
['小白世纪研发部']
第 21 个:https://www.lagou.com/jobs/4736472.html<Response [200]>
第 22 个:https://www.lagou.com/jobs/4736491.html<Response [200]>
小白世纪深度学习
['小白世纪深度学习']
第 23 个:https://www.lagou.com/jobs/5171496.html<Response [200]>
北京语知科技有限公司
['北京语知科技有限公司']
第 24 个:https://www.lagou.com/jobs/4760184.html<Response [200]>
布本智能研发部
['布本智能研发部']
第 25 个:https://www.lagou.com/jobs/4167858.html<Response [200]>
大视景研发部
['大视景研发部']
第 26 个:https://www.lagou.com/jobs/5142122.html<Response [200]>
道口金科
['道口金科']
第 27 个:https://www.lagou.com/jobs/4108874.html<Response [200]>
迪路科技研发
['迪路科技研发']
第 28 个:https://www.lagou.com/jobs/4436958.html<Response [200]>
迪路科技研发
['迪路科技研发']
第 29 个:https://www.lagou.com/jobs/3528017.html<Response [200]>
帝派智能研发部
['帝派智能研发部']
第 30 个:https://www.lagou.com/jobs/5198217.html<Response [200]>
动吧体育
['动吧体育']
第 31 个:https://www.lagou.com/jobs/5197834.html<Response [200]>
第 32 个:https://www.lagou.com/jobs/4879620.html<Response [200]>
第 33 个:https://www.lagou.com/jobs/5069661.html<Response [200]>
感易智能核心技术研发部
['感易智能核心技术研发部']
第 34 个:https://www.lagou.com/jobs/5069720.html<Response [200]>
感易智能核心技术研发部
['感易智能核心技术研发部']
第 35 个:https://www.lagou.com/jobs/5144233.html<Response [200]>
广州笨笨
['广州笨笨']
第 36 个:https://www.lagou.com/jobs/4980311.html<Response [200]>
泛娱乐精品内容孵化公司产品技术部
['泛娱乐精品内容孵化公司产品技术部']
第 37 个:https://www.lagou.com/jobs/5017549.html<Response [200]>
第 38 个:https://www.lagou.com/jobs/5017553.html<Response [200]>
汉云益生
['汉云益生']
第 39 个:https://www.lagou.com/jobs/4624866.html<Response [200]>
汉云益生
['汉云益生']
第 40 个:https://www.lagou.com/jobs/3898924.html<Response [200]>
虎鲸科技研发
['虎鲸科技研发']
第 41 个:https://www.lagou.com/jobs/5197960.html<Response [200]>
虎鲸科技
['虎鲸科技']
第 42 个:https://www.lagou.com/jobs/3788680.html<Response [200]>
虎鲸科技R&D
['虎鲸科技R&D']
第 43 个:https://www.lagou.com/jobs/4288237.html<Response [200]>
华云智能(北京)科技有限公司算法研发
['华云智能(北京)科技有限公司算法研发']
第 44 个:https://www.lagou.com/jobs/4288229.html<Response [200]>
第 45 个:https://www.lagou.com/jobs/5091249.html<Response [200]>
第 46 个:https://www.lagou.com/jobs/2709509.html<Response [200]>
极限元技术部
['极限元技术部']
第 47 个:https://www.lagou.com/jobs/2645980.html<Response [200]>
第 48 个:https://www.lagou.com/jobs/4729560.html<Response [200]>
易车文化
['易车文化']
第 49 个:https://www.lagou.com/jobs/4178304.html<Response [200]>
康夫子技术部
['康夫子技术部']
第 50 个:https://www.lagou.com/jobs/4178329.html<Response [200]>
第 51 个:https://www.lagou.com/jobs/4754888.html<Response [200]>
康夫子
['康夫子']
第 52 个:https://www.lagou.com/jobs/4883053.html<Response [200]>
客知音技术团队
['客知音技术团队']
第 53 个:https://www.lagou.com/jobs/5114881.html<Response [200]>
跨运达货运资讯客户端
['跨运达货运资讯客户端']
第 54 个:https://www.lagou.com/jobs/4222128.html<Response [200]>
零秒科技研发部
['零秒科技研发部']
第 55 个:https://www.lagou.com/jobs/4019580.html<Response [200]>
零秒科技技术部
['零秒科技技术部']
第 56 个:https://www.lagou.com/jobs/4222179.html<Response [200]>
零秒科技研发部
['零秒科技研发部']
第 57 个:https://www.lagou.com/jobs/4704481.html<Response [200]>
领骏科技
['领骏科技']
第 58 个:https://www.lagou.com/jobs/5080398.html<Response [200]>
轮子科技NLP算法部
['轮子科技NLP算法部']
第 59 个:https://www.lagou.com/jobs/4751259.html<Response [200]>
蒙特卡洛人工智能部
['蒙特卡洛人工智能部']
第 60 个:https://www.lagou.com/jobs/5159780.html<Response [200]>
秒帧TV数据部
['秒帧TV数据部']
第 61 个:https://www.lagou.com/jobs/4940029.html<Response [200]>
墨云科技
['墨云科技']
第 62 个:https://www.lagou.com/jobs/5174520.html<Response [200]>
第 63 个:https://www.lagou.com/jobs/5099813.html<Response [200]>
能量吧推荐部
['能量吧推荐部']
第 64 个:https://www.lagou.com/jobs/5086331.html<Response [200]>
能量吧
['能量吧']
第 65 个:https://www.lagou.com/jobs/5043302.html<Response [200]>
诺信创联技术部
['诺信创联技术部']
第 66 个:https://www.lagou.com/jobs/5159899.html<Response [200]>
葡萄智学
['葡萄智学']
第 67 个:https://www.lagou.com/jobs/5159934.html<Response [200]>
葡萄智学
['葡萄智学']
第 68 个:https://www.lagou.com/jobs/5159921.html<Response [200]>
葡萄智学
['葡萄智学']
第 69 个:https://www.lagou.com/jobs/2566070.html<Response [200]>
第 70 个:https://www.lagou.com/jobs/2858686.html<Response [200]>
奇点机智技术
['奇点机智技术']
第 71 个:https://www.lagou.com/jobs/2858767.html<Response [200]>
奇点机智技术
['奇点机智技术']
第 72 个:https://www.lagou.com/jobs/4568985.html<Response [200]>
清帆科技感知计算组
['清帆科技感知计算组']
第 73 个:https://www.lagou.com/jobs/4569082.html<Response [200]>
清帆科技感知计算组
['清帆科技感知计算组']
第 74 个:https://www.lagou.com/jobs/4532923.html<Response [200]>
清帆科技感知计算组
['清帆科技感知计算组']
第 75 个:https://www.lagou.com/jobs/3963395.html<Response [200]>
第 76 个:https://www.lagou.com/jobs/5063962.html<Response [200]>
清帆科技感知计算组
['清帆科技感知计算组']
第 77 个:https://www.lagou.com/jobs/4700906.html<Response [200]>
任你说研发部
['任你说研发部']
第 78 个:https://www.lagou.com/jobs/4541052.html<Response [200]>
任你说研发部
['任你说研发部']
第 79 个:https://www.lagou.com/jobs/4421028.html<Response [200]>
融汇
['融汇']
第 80 个:https://www.lagou.com/jobs/4068534.html<Response [200]>
北京睿企信息科技有限公司产品技术部
['北京睿企信息科技有限公司产品技术部']
第 81 个:https://www.lagou.com/jobs/4406224.html<Response [200]>
北京睿企信息科技有限公司
['北京睿企信息科技有限公司']
第 82 个:https://www.lagou.com/jobs/3496435.html<Response [200]>
睿思奥图研发部
['睿思奥图研发部']
第 83 个:https://www.lagou.com/jobs/5107267.html<Response [200]>
觉非科技
['觉非科技']
第 84 个:https://www.lagou.com/jobs/5107266.html<Response [200]>
觉非科技
['觉非科技']
第 85 个:https://www.lagou.com/jobs/5102435.html<Response [200]>
觉非科技技术部
['觉非科技技术部']
第 86 个:https://www.lagou.com/jobs/3065614.html<Response [200]>
深度好奇自然语言理解
['深度好奇自然语言理解']
第 87 个:https://www.lagou.com/jobs/3147354.html<Response [200]>
深感科技算法研发
['深感科技算法研发']
第 88 个:https://www.lagou.com/jobs/2081697.html<Response [200]>
深图智服DEEPIR
['深图智服DEEPIR']
第 89 个:https://www.lagou.com/jobs/2081680.html<Response [200]>
深图智服DEEPIR
['深图智服DEEPIR']
第 90 个:https://www.lagou.com/jobs/2049393.html<Response [200]>
第 91 个:https://www.lagou.com/jobs/2049383.html<Response [200]>
第 92 个:https://www.lagou.com/jobs/4726994.html<Response [200]>
时度检测ai中心
['时度检测ai中心']
第 93 个:https://www.lagou.com/jobs/4687406.html<Response [200]>
时度检测智能创新业务部
['时度检测智能创新业务部']
第 94 个:https://www.lagou.com/jobs/2981117.html<Response [200]>
思图场景技术部
['思图场景技术部']
第 95 个:https://www.lagou.com/jobs/4774000.html<Response [200]>
贪心科技研发
['贪心科技研发']
第 96 个:https://www.lagou.com/jobs/4656886.html<Response [200]>
探境科技
['探境科技']
第 97 个:https://www.lagou.com/jobs/5057860.html<Response [200]>
图湃影像技术部
['图湃影像技术部']
第 98 个:https://www.lagou.com/jobs/4470750.html<Response [200]>
未动科技研发部
['未动科技研发部']
第 99 个:
https://www.lagou.com/jobs/3880724.html<Response [200]>
未动科技研发部
['未动科技研发部']
第100 个:https://www.lagou.com/jobs/4576266.html<Response [200]>
香侬科技技术部
['香侬科技技术部']
第101 个:https://www.lagou.com/jobs/4114710.html<Response [200]>
第102 个:https://www.lagou.com/jobs/5177948.html<Response [200]>
兴承科技技术部-软件组
['兴承科技技术部-软件组']
第103 个:https://www.lagou.com/jobs/4755483.html<Response [200]>
雪扬科技
['雪扬科技']
第104 个:https://www.lagou.com/jobs/4900846.html<Response [200]>
曜辉科技研发部
['曜辉科技研发部']
第105 个:https://www.lagou.com/jobs/4084909.html<Response [200]>
医准智能算法组
['医准智能算法组']
第106 个:https://www.lagou.com/jobs/2860345.html<Response [200]>
依通科技研发部
['依通科技研发部']
第107 个:https://www.lagou.com/jobs/4823463.html<Response [200]>
颐圣智能
['颐圣智能']
第108 个:https://www.lagou.com/jobs/4579008.html<Response [200]>
第109 个:https://www.lagou.com/jobs/4667070.html<Response [200]>
昱然智能研发部
['昱然智能研发部']
第110 个:https://www.lagou.com/jobs/4606387.html<Response [200]>
泽泰征信
['泽泰征信']
第111 个:https://www.lagou.com/jobs/4163571.html<Response [200]>
增强智能技术部
['增强智能技术部']
第112 个:https://www.lagou.com/jobs/4653762.html<Response [200]>
兆瑞财智研发部
['兆瑞财智研发部']
第113 个:https://www.lagou.com/jobs/3576921.html<Response [200]>
多媒体处理技术技术部
['多媒体处理技术技术部']
第114 个:https://www.lagou.com/jobs/4120281.html<Response [200]>
主线科技自动驾驶
['主线科技自动驾驶']
第115 个:https://www.lagou.com/jobs/4870494.html<Response [200]>
主线科技
['主线科技']
第116 个:https://www.lagou.com/jobs/4671460.html<Response [200]>
卓视智通
['卓视智通']
第117 个:https://www.lagou.com/jobs/3820347.html<Response [200]>
卓视智通研发部
['卓视智通研发部']
第118 个:https://www.lagou.com/jobs/5153736.html<Response [200]>
紫光智能技术部
['紫光智能技术部']
In[123]:
df = pd.DataFrame(data = job2 ,columns = ['公司名','公司规模', '公司行业', '职位名','薪资','地址','经验','学历','工作类型','职位要求'])
df.to_csv('job_csv/job_bj02.csv',index = False)
print('已保存为csv文件.')
已保存为csv文件。
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', headers=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('\n', '').replace(' ', '').split('人')[0]
else:
guimo = soup.find_all('ul', class_='c_feature')[0].find_all('li')[3].text.split('领域')[0].replace('\n', '').replace(' ', '').split('人')[0]
job_i.append(guimo)
# 获取公司行业
hangye = soup.find_all('ul', class_='c_feature')[0].find_all('li')[0].text.split('领域')[0].replace('\n', '').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('\n', '').replace('\xa0', '').split('职位描述:')[-1]
job_i.append(jieshao)
job3.append(job_i)
time.sleep(0)
第 0 个:https://www.lagou.com/jobs/2575759.html<Response [200]>
ZingFront智线技术部
第 1 个:https://www.lagou.com/jobs/2644291.html<Response [200]>
ZingFront智线技术
第 2 个:https://www.lagou.com/jobs/4455397.html<Response [200]>
第 3 个:https://www.lagou.com/jobs/4646027.html<Response [200]>
上海摩象网络科技有限公司
第 4 个:https://www.lagou.com/jobs/4669320.html<Response [200]>
上海摩象网络科技有限公司
第 5 个:https://www.lagou.com/jobs/5171649.html<Response [200]>
重庆荆棘鸟科技有限公司
第 6 个:https://www.lagou.com/jobs/4967367.html<Response [200]>
HoloMatic
第 7 个:https://www.lagou.com/jobs/5138408.html<Response [200]>
格联装饰前瞻智能系统部
第 8 个:https://www.lagou.com/jobs/5037973.html<Response [200]>
Yi+
第 9 个:https://www.lagou.com/jobs/2942478.html<Response [200]>
Yi+技术
第 10 个:https://www.lagou.com/jobs/2945312.html<Response [200]>
中科虹霸研发部
第 11 个:https://www.lagou.com/jobs/3386347.html<Response [200]>
健康有益AI中心
第 12 个:https://www.lagou.com/jobs/4856268.html<Response [200]>
第 13 个:https://www.lagou.com/jobs/5009789.html<Response [200]>
佳讯飞鸿智能科技研究院
第 14 个:https://www.lagou.com/jobs/4621691.html<Response [200]>
黑咔相机
第 15 个:https://www.lagou.com/jobs/3617969.html<Response [200]>
艾耕科技研发部(算法team)
第 16 个:https://www.lagou.com/jobs/4929580.html<Response [200]>
创新奇智视觉组
第 17 个:https://www.lagou.com/jobs/5135041.html<Response [200]>
博维恒信科技
第 18 个:https://www.lagou.com/jobs/2575759.html<Response [200]>
ZingFront智线技术部
第 19 个:https://www.lagou.com/jobs/4113258.html<Response [200]>
Aibee技术部
第 20 个:https://www.lagou.com/jobs/5198512.html<Response [200]>
Aibee
第 21 个:https://www.lagou.com/jobs/4009867.html<Response [200]>
深思考人工智能机器人CV
第 22 个:https://www.lagou.com/jobs/4120188.html<Response [200]>
小鸿科技互联网事业部
第 23 个:https://www.lagou.com/jobs/4895431.html<Response [200]>
驭势科技视觉前瞻
第 24 个:https://www.lagou.com/jobs/4969475.html<Response [200]>
闻善科技2012实验室-中央硬件工程院
第 25 个:https://www.lagou.com/jobs/5143109.html<Response [200]>
东舟
第 26 个:https://www.lagou.com/jobs/3807817.html<Response [200]>
第 27 个:https://www.lagou.com/jobs/5071345.html<Response [200]>
慧拓智能研究院
第 28 个:https://www.lagou.com/jobs/4092735.html<Response [200]>
nreal.ai技术研发部
第 29 个:https://www.lagou.com/jobs/4766455.html<Response [200]>
水滴科技
第 30 个:https://www.lagou.com/jobs/4910868.html<Response [200]>
水滴科技
第 31 个:https://www.lagou.com/jobs/4682721.html<Response [200]>
触景无限
第 32 个:https://www.lagou.com/jobs/3314576.html<Response [200]>
Airdoc研发
第 33 个:https://www.lagou.com/jobs/5092510.html<Response [200]>
国承万通研发部
第 34 个:https://www.lagou.com/jobs/5133499.html<Response [200]>
中科奥森
第 35 个:https://www.lagou.com/jobs/4600099.html<Response [200]>
博云视觉智能安防事业部
第 36 个:https://www.lagou.com/jobs/4680848.html<Response [200]>
华慧视科技研发部
第 37 个:https://www.lagou.com/jobs/5130128.html<Response [200]>
兆讯微电子开发部
第 38 个:https://www.lagou.com/jobs/4024906.html<Response [200]>
第 39 个:https://www.lagou.com/jobs/3614336.html<Response [200]>
安易信研发中心
第 40 个:https://www.lagou.com/jobs/5056372.html<Response [200]>
核心互联
第 41 个:https://www.lagou.com/jobs/2985329.html<Response [200]>
聚力维度科幻成真实验室
第 42 个:https://www.lagou.com/jobs/5080187.html<Response [200]>
智加科技
第 43 个:https://www.lagou.com/jobs/5171237.html<Response [200]>
亮道智能汽车
第 44 个:https://www.lagou.com/jobs/4969376.html<Response [200]>
远度
第 45 个:https://www.lagou.com/jobs/4969027.html<Response [200]>
远度
第 46 个:https://www.lagou.com/jobs/4332402.html<Response [200]>
云脑科技AI软件研发部
第 47 个:https://www.lagou.com/jobs/5148150.html<Response [200]>
联拓世纪技术部
第 48 个:https://www.lagou.com/jobs/4546128.html<Response [200]>
晶泰科技研发部
第 49 个:https://www.lagou.com/jobs/3346053.html<Response [200]>
皓瞳科技-HortaTech研发部
第 50 个:https://www.lagou.com/jobs/4009867.html<Response [200]>
深思考人工智能机器人CV
第 51 个:https://www.lagou.com/jobs/5014488.html<Response [200]>
第 52 个:https://www.lagou.com/jobs/2925156.html<Response [200]>
第 53 个:https://www.lagou.com/jobs/3473615.html<Response [200]>
梅卡曼德研发
第 54 个:https://www.lagou.com/jobs/4953112.html<Response [200]>
第 55 个:https://www.lagou.com/jobs/4856575.html<Response [200]>
阿丘科技研发部
第 56 个:https://www.lagou.com/jobs/5171237.html<Response [200]>
亮道智能汽车
第 57 个:https://www.lagou.com/jobs/5162826.html<Response [200]>
第 58 个:https://www.lagou.com/jobs/4783626.html<Response [200]>
糖豆
第 59 个:https://www.lagou.com/jobs/4168872.html<Response [200]>
Soul App技术部
第 60 个:https://www.lagou.com/jobs/5183701.html<Response [200]>
创投梦工场技术部
第 61 个:https://www.lagou.com/jobs/4583628.html<Response [200]>
ULSee
第 62 个:https://www.lagou.com/jobs/5055808.html<Response [200]>
志诺维思
第 63 个:https://www.lagou.com/jobs/5138408.html<Response [200]>
格联装饰前瞻智能系统部
第 64 个:https://www.lagou.com/jobs/2259914.html<Response [200]>
开易科技
第 65 个:https://www.lagou.com/jobs/4044947.html<Response [200]>
第 66 个:https://www.lagou.com/jobs/5094575.html<Response [200]>
橙家装饰
第 67 个:https://www.lagou.com/jobs/4927733.html<Response [200]>
MYNTAI小觅智能研发
第 68 个:https://www.lagou.com/jobs/5031227.html<Response [200]>
第 69 个:https://www.lagou.com/jobs/4897451.html<Response [200]>
第 70 个:https://www.lagou.com/jobs/1695062.html<Response [200]>
嘉恒图像研发部
第 71 个:https://www.lagou.com/jobs/4536675.html<Response [200]>
第 72 个:https://www.lagou.com/jobs/4892627.html<Response [200]>
土豆数据研发中心
第 73 个:https://www.lagou.com/jobs/4820965.html<Response [200]>
开拓天际产品研发部
第 74 个:https://www.lagou.com/jobs/5172369.html<Response [200]>
爱满分技术部
第 75 个:https://www.lagou.com/jobs/4750965.html<Response [200]>
中科博宏
第 76 个:https://www.lagou.com/jobs/4840557.html<Response [200]>
第 77 个:https://www.lagou.com/jobs/4024906.html<Response [200]>
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=(6, 4))
# 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=(12, 4))
# 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=(12, 4))
# 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=(12, 4))
# 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=(6, 4))
# 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=(12, 4))
# 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=(12, 4))
# 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=(12, 4))
# 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=(12, 4))
# 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