
在发布信息后,很多人都觉得这件事做完了。那么有没有细心地小伙伴想过上面的发布时间是否正确呢?相信大多时候我们和求职者都会正价注重岗位内容的本身。殊不知,一些细节可能会导致信息交流的不对等。今天小编就发布招聘中的时间和薪水的问题,用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免费测试



