Python爬虫实战 - 抓取BOSS直聘职位描述 和 数据清洗_job-sec-text(1)

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

def save(item):
   return db.jobs_php.update_one({“_id”: item[‘_id’]}, {“$set”: item})
if name == “main”:
   init()


代码 easy,初学者都能看懂。


 


### 二、数据清洗


**2.1 校正发布日期**



“time” : “发布于03月31日”,
“time” : “发布于昨天”,
“time” : “发布于11:31”,


这里拿到的都是这种格式的,所以简单处理下



import datetime
from pymongo import MongoClient
db = MongoClient(‘127.0.0.1’, 27017).iApp
def update(data):
   return db.jobs_php.update_one({“_id”: data[‘_id’]}, {“$set”: data})

把时间校正过来

def clear_time():
   items = db.jobs_php.find({})
   for item in items:
       if not item[‘time’].find(‘布于’):
           continue
       item[‘time’] = item[‘time’].replace(“发布于”, “2017-”)
       item[‘time’] = item[‘time’].replace(“月”, “-”)
       item[‘time’] = item[‘time’].replace(“日”, “”)
       if item[‘time’].find(“昨天”) > 0:
           item[‘time’] = str(datetime.date.today() - datetime.timedelta(days=1))
       elif item[‘time’].find(“:”) > 0:
           item[‘time’] = str(datetime.date.today())
       update(item)
   print(‘ok’)


**2.2 校正薪水以数字保存**



‘’’
“salary” : “5K-12K”,
#处理成下面的格式
“salary” : {
   “low” : 5000,
   “high” : 12000,
   “avg” : 8500.0
},
‘’’

薪水处理成数字,符合 xk-yk 的数据处理,不符合的跳过

def clear_salary():
   items = db.jobs_lagou_php.find({})
   for item in items:
       if type(item[‘salary’]) == type({}):
           continue
       salary_list = item[‘salary’].lower().replace(“k”, “000”).split(“-”)
       if len(salary_list) != 2:
           print(salary_list)
           continue
       try:
           salary_list = [int(x) for x in salary_list]
       except:
           print(salary_list)
           continue
       item[‘salary’] = {
           ‘low’: salary_list[0],
           ‘high’: salary_list[1],
           ‘avg’: (salary_list[0] + salary_list[1]) / 2
       }
       update(item)
   print(‘ok’)


这里在处理 Boss 直聘的数据时,比较简单正常,但是后续抓到拉勾网的数据,拉勾网的数据有些不太规范。比如有‘20k以上’这种描述  
**2.3 根据 工作经验年限 划分招聘等级**



校正拉勾网工作年限描述,以 Boss直聘描述为准

def update_lagou_workyear():
   items = db.jobs_lagou_php.find({})
   for item in items:
       if item[‘workYear’] == ‘应届毕业生’:
           item[‘workYear’] = ‘应届生’
       elif item[‘workYear’] == ‘1年以下’:
           item[‘workYear’] = ‘1年以内’
       elif item[‘workYear’] == ‘不限’:
           item[‘workYear’] = ‘经验不限’
       update_lagou(item)
   print(‘ok’)

设置招聘的水平,分两次执行

def set_level():
   items = db.jobs_zhipin_php.find({})
   # items = db.jobs_lagou_php.find({})
   for item in items:
       if item[‘workYear’] == ‘应届生’:
           item[‘level’] = 1
       elif item[‘workYear’] == ‘1年以内’:
           item[‘level’] = 2
       elif item[‘workYear’] == ‘1-3年’:
           item[‘level’] = 3
       elif item[‘workYear’] == ‘3-5年’:
           item[‘level’] = 4
       elif item[‘workYear’] == ‘5-10年’:
           item[‘level’] = 5
       elif item[‘workYear’] == ‘10年以上’:
           item[‘level’] = 6
       elif item[‘workYear’] == ‘经验不限’:
           item[‘level’] = 10
       update(item)
   print(‘ok’)


这里有点坑的就是,一般要求经验不限的岗位,需求基本都写在任职要求里了,所以为了统计的准确性,这个等级的数据,后面会被舍弃掉。


 


 



![在这里插入图片描述](https://img-blog.csdnimg.cn/20210511152217670.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poaWd1aWd1,size_16,color_FFFFFF,t_70)

**感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:**



① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值