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