本文来源吾爱破解论坛
本帖最后由 youpc529 于 2019-11-22 10:42 编辑 1.png (116.62 KB, 下载次数: 0)
下载附件
保存到相册
使用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[2]/div[1]/div[2]/div/form/div[1]/span[3]').click()
sleep(2)
#点击推荐牛人
driver.find_element_by_xpath('//*[@id="main"]/div[1]/div/dl[2]/dt/a').click()
#选择岗位
def select(x):
dropdown = driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div/div[2]/div[2]/span')
ActionChains(driver).click(dropdown).perform()
selectxpath = '/html/body/div[1]/div[1]/div/div/div[2]/div[2]/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[2]/div/div/div/div/ul/li["+str(i)+"]/div/div/div[2]/div/span/button"
greetxpath = '//*[@id="recommend-list"]/div/ul/li['+str(i)+']/div/div/div[2]/div/span/button'
greetele = driver.find_element_by_xpath(greetxpath)
greet = greetele.text
agexpath = "/html/body/div/div/div/div/div[2]/div/div/div/div/ul/li["+str(i)+"]/div/div/div[3]/div[2]/div[2]/span[1]"
ageele = driver.find_element_by_xpath(agexpath)
agestr = ageele.text
age = int(agestr[0:2])
if 18 < age < 31 and greet != "继续沟通":
highLightElement(driver,ageele)
rt = random.randint(0,5)
highLightElement(driver,greetele)
sleep(rt)
driver.execute_script("arguments[0].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
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 用Python开发了批量重命名的小应用
- 下一篇: 【python】zip密码爆破源码