爬取应届生网的两千条2021校招信息
Bug
正在從其他平臺搬運文章,下面所有的圖片均無法顯示,正在尋找圖床中……
前言
又到毕业季,大家开始为找工作而忙碌起来。加上疫情的原因,今年的校招可能是近几年竞争最激烈的一次。
校招与社招不同,大公司们会提前‘预定’好心仪的应届生,所以报名方式与社招直接投自己制作好的简历不同:每一家公司网站都要自己重新填一遍简历。
所以校招也算是一项繁重的工作,特别对于想要‘海投’的同学来说。有些人会把自己投递的校招公司信息整理成表格以便日后进行参考;但在记录投递的公司之前,找公司信息的方法就开始五花八门:有的校招信息来源通过朋友告知,有的通过日常接触的品牌而去网上搜索碰碰运气,有的则是直接在帮你罗列好所有信息的求职网站上寻觅……
参与校招的公司大部分投档方式都在自家网站,热门的求职网站对于校招的信息也不太多。而一些真的很用心的校招搜集网站呢,
却充斥着各种广告: 想必大家也不喜欢这种花花绿绿的上网体验,对于想‘海投’的同学来说,搜集信息也确实浪费了大量的时间。
所以,如何舒服地在无广告的世界里找校招?
我把应届生校招网 网站链接 底下的2000+条校招信息全爬取下来,放进了excel文档里边,上图看到的便是完成后的样子。
有了这些信息在excel之后,可以通过搜索城市(地区)名,或搜索想要的公司来各取所需。另外,excel摆脱网页的束缚,你不需要容忍看完一页要点下一页的操作,你可以随意在表格上边进行删除、备注、记录,省去手动录入信息的大量时间。拥有python的同学,也可以通过运行源码,实时更新网站最新校招信息到本地。
开始爬行
首先加载需要用到的库:
import pandas as pd #这是本次将数据保存为表格形式,进行数据清洗,与录入excel文件所需要的库
import requests #让python请求网页的库
from bs4 import BeautifulSoup #解析html代码的库
import re #正则表达式的库,爬取校招信息对应链接时用到
import time #生成日期,保存的时候有用到
首先定义好这三列数据的列表名字:
namelist=[]
datelist=[]
link=[]
接着访问网站
url = 'http://www.yingjiesheng.com/2021/index-1.html'
page = requests.get(url).content
soup = BeautifulSoup(page,'html')
所以就可以爬取公司校招信息标题:
company = soup.find_all('div', class_='s_clear tit floatl')
for i in company:
namelist.append(i.text)
date = soup.find_all('div', class_='box1 bg1')
for i in date:
datelist.append(i.text)
for i in range(len(company)):
link.append(company[i].find_all('a')[0]['href'])
至此,我们就爬完了网页上的第一页100行数据。如果要继续抓取之后的页面,仅需在前面加上for循环把上边的代码全部循环一遍就可以了。
数据清洗
这次爬虫虽然抓取的时候不难,但抓取下来的信息还是需要稍微进行一下清理,比如爬取下来的日期首尾有换行符;比如头俩行居然还是广告;比如有些链接是导向网站的其他链接,所以我们要对它们添加主站域名‘http://www.yingjiesheng.com/’。
清洗的代码如下:
df = pd.DataFrame([namelist,datelist,link]).T #先把数据储存进表格里
df.columns=['name','date','link']
df['date'] = df.date.apply(lambda x: x.strip()) #去除日期前后的换行符
df.drop([0,1],axis=0,inplace=True) #去掉前两行广告
linklist = df['link'].tolist() #修改链接让它可以直接访问
for i in range(len(linklist)):
if re.search('^/job-',linklist[i]):
linklist[i] = ('http://www.yingjiesheng.com'+linklist[i])
else:
pass
df['link'] = linklist
df['date'] = df.date.apply(lambda x: x.replace('网申','')) #去除前面的网申二字
最后一步就是将表格保存到本地excel文档:
timestamp = time.strftime('%m%d',time.localtime())
filename = 'recruit'+timestamp+'.xlsx'
df.to_excel(filename,index=False,encoding='utf-8-sig')
大功告成!
总结与反思
一 这次爬虫十分简单但却十分有用,我在这里介绍一个好用的excel小技巧提高阅读信息的效率:
我们点开筛选,然后将自己想要的公司校招信息用颜色高亮,再点击筛选的小箭头,点击用颜色进行排序。