Added a automated job script for LinkedIn
This commit is contained in:
parent
60aaed68fb
commit
0b3ee3830a
104
Visual Studio Code Projects/main.py
Normal file
104
Visual Studio Code Projects/main.py
Normal file
@ -0,0 +1,104 @@
|
||||
from selenium import webdriver
|
||||
from selenium.webdriver.common.keys import Keys
|
||||
from selenium.common.exceptions import NoSuchElementException
|
||||
from selenium.webdriver.chrome.service import Service as ChromeService
|
||||
from selenium.webdriver.common.by import By
|
||||
import time
|
||||
|
||||
ACCOUNT_EMAIL = "YOUR LOGIN EMAIL",
|
||||
ACCOUNT_PASSWORD = "YOUR LOGIN PASSWORD",
|
||||
PHONE = "YOUR PHONE NUMBER",
|
||||
|
||||
|
||||
def abort_application():
|
||||
# Click Close Button
|
||||
close_button = driver.find_element(by=By.CLASS_NAME, value="artdeco-modal__dismiss")
|
||||
close_button.click()
|
||||
|
||||
time.sleep(2)
|
||||
# Click Discard Button
|
||||
discard_button = driver.find_elements(by=By.CLASS_NAME, value="artdeco-modal__confirm-dialog-btn")[1]
|
||||
discard_button.click()
|
||||
|
||||
|
||||
chrome_driver_path = "YOUR CHROME DRIVER PATH"
|
||||
|
||||
# Optional - Automatically keep your chromedriver up to date.
|
||||
from webdriver_manager.chrome import ChromeDriverManager # pip install webdriver-manager
|
||||
chrome_driver_path = ChromeDriverManager("path=YOUR CHROME DRIVER FOLDER").install()
|
||||
|
||||
# Optional - Keep the browser open if the script crashes.
|
||||
chrome_options = webdriver.ChromeOptions()
|
||||
chrome_options.add_experimental_option("detach", True)
|
||||
|
||||
service = ChromeService(executable_path=chrome_driver_path)
|
||||
driver = webdriver.Chrome(service=service, options=chrome_options)
|
||||
|
||||
driver.get("https://www.linkedin.com/jobs/search/?currentJobId=3586148395&f_LF=f_AL&geoId=101356765&"
|
||||
"keywords=python&location=London%2C%20England%2C%20United%20Kingdom&refresh=true")
|
||||
|
||||
# Click Reject Cookies Button
|
||||
time.sleep(2)
|
||||
reject_button = driver.find_element(by=By.CSS_SELECTOR, value='button[action-type="DENY"]')
|
||||
reject_button.click()
|
||||
|
||||
# Click Sign in Button
|
||||
time.sleep(2)
|
||||
sign_in_button = driver.find_element(by=By.LINK_TEXT, value="Sign in")
|
||||
sign_in_button.click()
|
||||
|
||||
# Sign in
|
||||
time.sleep(5)
|
||||
email_field = driver.find_element(by=By.ID, value="username")
|
||||
email_field.send_keys(ACCOUNT_EMAIL)
|
||||
password_field = driver.find_element(by=By.ID, value="password")
|
||||
password_field.send_keys(ACCOUNT_PASSWORD)
|
||||
password_field.send_keys(Keys.ENTER)
|
||||
|
||||
# CAPTCHA - Solve Puzzle Manually
|
||||
input("Press Enter when you have solved the Captcha")
|
||||
|
||||
# Get Listings
|
||||
time.sleep(5)
|
||||
all_listings = driver.find_elements(by=By.CSS_SELECTOR, value=".job-card-container--clickable")
|
||||
|
||||
# Apply for Jobs
|
||||
for listing in all_listings:
|
||||
print("Opening Listing")
|
||||
listing.click()
|
||||
time.sleep(2)
|
||||
try:
|
||||
# Click Apply Button
|
||||
apply_button = driver.find_element(by=By.CSS_SELECTOR, value=".jobs-s-apply button")
|
||||
apply_button.click()
|
||||
|
||||
# Insert Phone Number
|
||||
# Find an <input> element where the id contains phoneNumber
|
||||
time.sleep(5)
|
||||
phone = driver.find_element(by=By.CSS_SELECTOR, value="input[id*=phoneNumber]")
|
||||
if phone.text == "":
|
||||
phone.send_keys(PHONE)
|
||||
|
||||
# Check the Submit Button
|
||||
submit_button = driver.find_element(by=By.CSS_SELECTOR, value="footer button")
|
||||
if submit_button.get_attribute("data-control-name") == "continue_unify":
|
||||
abort_application()
|
||||
print("Complex application, skipped.")
|
||||
continue
|
||||
else:
|
||||
# Click Submit Button
|
||||
print("Submitting job application")
|
||||
submit_button.click()
|
||||
|
||||
time.sleep(2)
|
||||
# Click Close Button
|
||||
close_button = driver.find_element(by=By.CLASS_NAME, value="artdeco-modal__dismiss")
|
||||
close_button.click()
|
||||
|
||||
except NoSuchElementException:
|
||||
abort_application()
|
||||
print("No application button, skipped.")
|
||||
continue
|
||||
|
||||
time.sleep(5)
|
||||
driver.quit()
|
||||
Loading…
Reference in New Issue
Block a user