在发布信息后,很多人都觉得这件事做完了。那么有没有细心地小伙伴想过上面的发布时间是否正确呢?相信大多时候我们和求职者都会正价注重岗位内容的本身。殊不知,一些细节可能会导致信息交流的不对等。今天小编就发布招聘中的时间和薪水的问题,用Python爬虫的相关知识教大家修改吧。
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.校正薪水以数字保存
"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以上’这种描述
学会本篇的修改招聘时间和薪水的小伙伴,可以试试修改,当然也可以举一反三用于类似发布信息的改动上,小编相信大家都可以发散思维,用于更多的实际使用中。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试