hello hello~ ,这里是绝命Coding——老白~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
💥个人主页:绝命Coding-CSDN博客
💥 所属专栏:后端技术分享
这里将会不定期更新有关后端、前端的内容,希望大家多多点赞关注收藏💖
大家实习秋招应该都会投递简历的烦恼吧,海投脚本,就可以省去人力的麻烦,大家每天在选完自己想投的公司后,不妨使用脚本把每天可以沟通次数都投完。海投越多,机会越大。
(Boss海投原理与下面的基本是同样,大家也可以自己动手做个Boss海投脚本)
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import time
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# 表示是否为第一次使用,第一次使用选择1会自动下载驱动,否则设为其他
frequency = 2
# chromedriver驱动路径,这里自己找到下载的默认位置,改成相应的
path = r'C:\Users\jueMingCoding\.wdm\drivers\chromedriver\win32\107.0.5304\chromedriver.exe'
iskeyword = True # 设置是否进行关键词过滤
keyword = ["java","后端"] # 设置必须有该关键词才能进行投递
# 下载驱动
def downdriver():
driver = webdriver.Chrome(ChromeDriverManager().install())
# 检查存在再进行数据的
def check_find_elements(bro,by,value):
# 等待元素加载完毕
while (True):
try:
# 注意.是class name的意思
bro.find_element(by, value)
#print(value + "找到")
break
except Exception:
continue
return bro.find_elements(by, value)
# 检查存在再进行数据的
def check_find_element(bro,by,value):
# 等待元素加载完毕
while (True):
try:
# 注意.是class name的意思
bro.find_element(by, value)
#print(value + "找到")
break
except Exception:
continue
return bro.find_element(by, value)
# 点击按钮进行沟通
def deal(bro):
#print("正在处理")
try:
cls = bro.window_handles
bro.switch_to.window(cls[1])
# btn-box resume_apply
try:
bro.find_element("css selector", "[class='btn-box resume_apply']")
print("已经投递过该公司")
bro.close()
bro.switch_to.window(cls[0])
return
except Exception as e:
#print(e)
pass
isTD = False # 是否投递
for key in keyword:
isTD = isTD or key.lower() in bro.title.lower()
if( (iskeyword == True and isTD ) or (iskeyword == False) ):
chat = check_find_element(bro, "css selector", "[class='btn-box resume_apply com_res']")
chat.click()
# /html/body/div[5]/div/div[1]/div/span
time.sleep(0.01)
#time.sleep(1)
# 这里点击img的
jl = check_find_element(bro, "xpath", "//img[@src='https://sxsimg.xiaoyuanzhao.com/static/img/deliver-layer/radio-choose.png']")
jl.click()
try:
bro.find_element("xpath", "//img[@aria-label='友情提示']")
bro.close()
bro.switch_to.window(cls[0])
return
except Exception as e:
pass
ok = check_find_element(bro, "css selector", "[class='btn']")
ok.click()
#time.sleep(1)
bro.close()
bro.switch_to.window(cls[0])
except Exception as e:
bro.close()
bro.switch_to.window(cls[0])
print("qaq",e)
return
# 打开页面
def open():
s = Service(path)
bro = webdriver.Chrome(service=s)
bro.get("https://www.shixiseng.com/")
check_find_element(bro, "css selector","[class='nickname']")
bro.get("https://www.shixiseng.com/interns?keyword=Java&city=%E5%85%A8%E5%9B%BD&type=intern&from=menu")
print("请在20秒内完成搜索或者筛选工作,否则默认在推荐页面进行投递 ~")
for i in range(20):
print("时间还剩"+str(20-i)+"秒……")
time.sleep(1)
print("开始海投~")
#bro.set_window_size(300, 300)
#bro.minimize_window() # 最小化窗口,不影响
while(True):
#jobs = check_find_elements(bro, "css selector", '.info-primary-wrap')
# btn btn-startchat-out # start-chat-btn # 推荐页start-chat-btn
jobs = check_find_elements(bro, "css selector", "[class='title ellipsis font']")
#print(jobs)
print(jobs)
for job in jobs:
try:
job.click()
except Exception as e:
print('aa',e)
continue
#print("qaq")
deal(bro)
#break
next_index(bro)
time.sleep(100)
# 点击下一页
def next_index(bro):
check_find_element(bro, "css selector", "[class='el-icon el-icon-arrow-right']").click()
#check_find_element(bro, "xpath", '//*[@id="container"]/div[2]/div/div[3]/div[3]/div/div/a[10]')
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
print("- 实习僧一键投递脚本启动成功(注意该脚本需要全屏) -")
if( frequency == 1 ):
print("第一次运行,正在下载驱动 ~ ")
downdriver()
print("下载成功,请修改frequency变量并重新启动")
else:
print("正在启动浏览器 ~")
open()
更多历史精彩文章(篇幅过多,不一一列出):
(简历相关)
求职经验分享(1):一份合格的简历应该如何写?-CSDN博客(推荐)
求职经验分享(2):简历如何优化以及如何应对面试【后端篇】-CSDN博客
(项目亮点相关)
大厂面试官赞不绝口的后端技术亮点【后端项目亮点合集(1):Redis篇】-CSDN博客
大厂面试官赞不绝口的后端技术亮点【后端项目亮点合集(2)】-CSDN博客
(八股文)
大厂面试官问我:Redis处理点赞,如果瞬时涌入大量用户点赞(千万级),应当如何进行处理?【后端八股文一:Redis点赞八股文合集】_java中redis如何实现点赞-CSDN博客大厂面试官问我:布隆过滤器有不能扩容和删除的缺陷,有没有可以替代的数据结构呢?【后端八股文二:布隆过滤器八股文合集】_布隆过滤器不能扩容-CSDN博客
………
(算法篇)
大厂面试:算法考前必看汇总(全)_大厂面试算法题-CSDN博客
Boss海投脚本也会继续分享,感兴趣的小伙伴可以给个三连~