[python]boss直聘自动搜索简历聊天HR机器人

python

目录

  • 前言
  • 1、首先进行几个关键位置的标定
  • 2、拖拽鼠标复制简历的文字,并进行字符串匹配,对候选人进行人物画像和打分
  • 3、筛选、聊天、下一个全流程状态机
  • 附录


前言

该机器人完全仿照人是如何操作的,进行简历搜索和自动打招呼。


1、首先进行几个关键位置的标定

1)简历的左上角

2)简历的”打招呼“按钮

3)聊天对话框的输入文字框的位置

4)关闭聊天对话框的按钮的位置

5)”下一个“按钮的位置

将上面5个位置定义为P1~P5

标定相关的代码:

python">pos1 = Point(0,0)

pos2 = Point(0,0)

pos3 = Point(0,0)

pos4 = Point(0,0)

pos5 = Point(0,0)

def get_key_pos():

last_time = time.time()

step = -1

print("标定开始...")

while 1<2:

t = time.time() - last_time

if t > 5:

last_time = time.time()

if step == -1:

print("请点击一次简历左上角的空白处,并保持不动")

step = 0

elif step == 0:

pos1.x,pos1.y = m.position()

print("请点击一次打招呼,并保持不动")

step = 1

elif step == 1:

pos2.x,pos2.y = m.position()

print("请点击一次文字输入框,并保持不动")

step = 2

elif step == 2:

pos3.x,pos3.y = m.position()

print("请点击一次关闭对话框,并保持不动")

step = 3

elif step == 3:

pos4.x,pos4.y = m.position()

print("请点击一次下一个(如果下一个右边有下拉滚动条,则放在下一个的右侧边缘,否则放在左侧边缘),并保持不动")

step = 4

elif step == 4:

pos5.x,pos5.y = m.position()

print(pos1,pos2,pos3,pos4,pos5)

return


2、拖拽鼠标复制简历的文字,并进行字符串匹配,对候选人进行人物画像和打分

def people_filter():

drag(Point(pos1.x,pos1.y),Point(pos1.x,1000),2,0)

drag(Point(pos1.x,1000),Point(935,655),1)

k.press_key(k.control_key)

k.tap_key("c")

time.sleep(1)

k.release_key(k.control_key)

m.move(1334, 461)

m.scroll(10)

text = pyperclip.paste()

ret = text.find("看过Ta的人还联系了") #推荐信息给过滤掉

if ret != -1:

text = text[:ret]

#print(text)

#print("分析:",text)

value = int(0)

richness = text.count("

") #根据多少行判断是否丰富

print(">>> 候选人,人物画像: ")

print("> 简历丰富度(多少行):",richness)

if richness > 35:

print("> 简历:丰富")

value = value + 5

else:

print("> 简历:不丰富")

if text.find("本科") != -1:

print("> 本科:YES")

else:

print("> 本科:NO")

#...省略很多关键词匹配的代码

print("> 总分:", value)

if value < 10:

return 0

else:

return 1

这里用了 PyMouse、PyKeyboard(用python操作鼠标和键盘)模块,其中drag函数实现从Point1拖拽到Point2,最后一个参数为0表示拖拽完毕不松手,为1表示拖拽完毕松手。因此:

  • people_filter 函数的前两行实现的功能是: 从简历的左上角向下拖拽到屏幕外(实现全选),然后再从屏幕外拖拽到简历的右下角
  • 接下来 4 行利用 PyKeyboard 发送 ctrl+c 的命令,进行复制
  • 接下来从剪切板中取出刚刚复制的内容 text = pyperclip.paste()

  • 最后进行关键词匹配


3、筛选、聊天、下一个全流程状态机

m = PyMouse()

k = PyKeyboard()

def hr_start():

get_key_pos()

last_time = time.time()

step = -1

while 1<2:

t = time.time() - last_time

if t > 2:

if step == -1:

if people_filter() == 1:

step = 0

else:

step = 4

elif step == 0:

m.click(pos2.x, pos2.y, 1)

step = 1

print("沟通")

elif step == 1:

m.click(pos2.x, pos2.y, 1)

step = 2

pyperclip.copy("您好~方便简历发过来吗?")

print("打开沟通对话框")

elif step == 2:

m.click(pos3.x, pos3.y , 1)

k.press_key(k.control_key)

k.tap_key("v")

time.sleep(1)

k.release_key(k.control_key)

k.tap_key(k.enter_key)

step = 3

print("输入一句话")

elif step == 3:

m.click(pos4.x, pos4.y, 1) #取整除 - 向下取接近除数的整数

step = 4

print("关闭沟通")

elif step == 4:

m.click(pos5.x, pos5.y, 1)

time.sleep(1)

step = -1

print("下一个")

#print("time=",t)

last_time = time.time()

逻辑比较简单:如果筛选的人满足条件,则进行沟通,索要简历,如果不行继续下一个


附录

1.完整代码 wget http://tuchuang.beautifulzzzz.com:3000/?path=/56/90620e0ab9098ef485037ad1eb5d31.png ,然后重命名为.py,使用python3

2.[python] PyMouse、PyKeyboard用python操作鼠标和键盘

: 希望这个简单的小 DEMO 能帮助你理解 python 的对鼠标键盘操作的模块~

千万不要用这种程序去做坏事~

以上是 [python]boss直聘自动搜索简历聊天HR机器人 的全部内容, 来源链接: utcz.com/z/531222.html

回到顶部