boss直聘批量向牛人询问求职意向
本帖最后由 youpc529 于 2019-11-22 10:42 编辑使用boss直聘没法按照自己想要的条件筛选“牛人”(如按照年龄或性别),想批量筛选和打招呼又要花钱,如下图:
于是自己折腾了,此代码以“年龄”和“是否沟通过”为条件进行筛选,并对符合条件的“牛人”批量询问求职意向。
```
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import *
import random
from time import sleep
#浏览器设置
chrome_options = Options()
chrome_options.add_argument('lang=zh_CN.UTF-8')
UserAgent='Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
chrome_options.add_argument('User-Agent=' + UserAgent)
driver = webdriver.Chrome(r'D:\chromedriver.exe',options=chrome_options)
driver.maximize_window()
driver.implicitly_wait(10)
#扫码登录
login_link = 'https://login.zhipin.com/?ka=header-login'
driver.get(login_link)
driver.find_element_by_xpath('//*[@id="wrap"]/div/div/div/div/form/div/span').click()
sleep(2)
#点击推荐牛人
driver.find_element_by_xpath('//*[@id="main"]/div/div/dl/dt/a').click()
#选择岗位
def select(x):
dropdown = driver.find_element_by_xpath('/html/body/div/div/div/div/div/div/span')
ActionChains(driver).click(dropdown).perform()
selectxpath = '/html/body/div/div/div/div/div/div/div/ul/li['+str(x)+']'
select = driver.find_element_by_xpath(selectxpath)
position = select.text
select.click()
highLightElement(driver,select)
print("现在筛选的岗位是:"+position)
sleep(1)
#打招呼,询问求职意向
def grdo(i):
try:
#greetxpath = "/html/body/div/div/div/div/div/div/div/div/div/ul/li["+str(i)+"]/div/div/div/div/span/button"
greetxpath = '//*[@id="recommend-list"]/div/ul/li['+str(i)+']/div/div/div/div/span/button'
greetele = driver.find_element_by_xpath(greetxpath)
greet = greetele.text
agexpath = "/html/body/div/div/div/div/div/div/div/div/div/ul/li["+str(i)+"]/div/div/div/div/div/span"
ageele = driver.find_element_by_xpath(agexpath)
agestr = ageele.text
age = int(agestr)
if 18 < age < 31 and greet != "继续沟通":
highLightElement(driver,ageele)
rt = random.randint(0,5)
highLightElement(driver,greetele)
sleep(rt)
driver.execute_script("arguments.click();", greetele)
driver.execute_script('window.scrollBy(0,200)')
print("第%d个符合,"%i,end="")
print("年龄%s."%agestr)
else:
print("第%d个不符合,"%i,end="")
print("年龄%s."%agestr)
driver.execute_script('window.scrollBy(0,200)')
except ValueError:
print("第%d个没有数据"%i)
#每个岗位筛选68人
def grf():
k=2
while k<70:
try:
grdo(k)
except NoSuchElementException:
if k == 6:
print("忽略boss的升级提醒")
pass
else:
print("网页没加载成功,第%d个没有数据,等待重新加载"%k)
driver.execute_script("var q=document.documentElement.scrollTop=10000")
sleep(1)
grdo(k)
k +=1
#嵌入网页,需要切换
def task(y):
select(y)
driver.switch_to.frame("syncFrame")
grf()
#设置要筛选的岗位
i = 2
while i < 13:
if i == 3 or i ==7 or i ==8:
i += 1
continue
task(i)
print("完成一个岗位。")
driver.switch_to.default_content()
i += 1
``` changjiang 发表于 2019-12-17 19:13
sel速度感觉还行,还有就是少了highLightElement方法
通过print就知道运行过程,需要用highLightElement方法吗?感谢指教{:1_893:} 主骑士 发表于 2019-11-22 12:00
(⊙o⊙)哦,这思路厉害了,顶一个
这个确实很多人都很需要的。
现在需要多听听别人的需求,有需求才知道怎么去学习python,谢谢!
(⊙o⊙)哦,这思路厉害了,顶一个
这个确实很多人都很需要的。 用起来应该很实在的 我也蛮需要的
谢谢分享,求软件,谢谢 很需要这个麻烦教下 谢谢 。有偿没问题的联系我qq:648441721 sel速度感觉还行,还有就是少了highLightElement方法 ccc8 发表于 2019-12-17 13:30
很需要这个麻烦教下 谢谢 。有偿没问题的联系我qq:648441721
可以互相交流下:handshake,学习