Πώς να καταργήσετε τις εργασίες LinkedIn με την Python

Η απόκτηση εργασίας είναι από μόνη της μια δουλειά. Και αν είστε σαν εμένα, ένας φοιτητής MBA με περιορισμένο χρόνο, κουρασμένος από το κλικ και πιο πρόθυμος να αλληλεπιδράσει με τα φύλλα του Excel και να αναλύσει τα δεδομένα μέσω της μαγείας των υπολογιστικών φύλλων, αυτή η λύση είναι για σας:

Τώρα προτού προχωρήσουμε, το LinkedIn πιθανώς δεν συμπαθεί αυτό, αλλά αρκεί να μην διανέμετε, να αναδημοσιεύετε, να πωλείτε ή να αποθηκεύετε τα δεδομένα μακροπρόθεσμα, θα πρέπει να είστε εντάξει. Μπορεί να εντυπωσιάσετε ακόμη και τους υπεύθυνους προσλήψεων σας με τις δυνατότητες απόξεσης δεδομένων.

Αυτό που πρόκειται να χρησιμοποιήσουμε είναι το σελήνιο με την Python για να ελέγξουμε μια παρουσία του Chrome σαν να κάναμε κλικ και να ερευνήσουμε μόνο. Αντίθετα, θα παρακολουθούμε το Paw Patrol και την αλλαγή πάνες, όπως οι μακροεντολές Excel, αλλά και το Διαδίκτυο. Φοβερός!

Τι θα χρειαστείτε και υποθέτω ότι έχετε μια επαγγελματική γνώση της Python είναι:

Python -> τουλάχιστον έκδοση 3.7.4

Chromedriver -> Κάντε λήψη εδώ, αποσυνδέστε και αποθηκεύστε σε ένα φάκελο.

Σελήνιο -> pip εγκαταστήστε σελήνιο

Pandas -> pip εγκαταστήστε pandas

Οι πληροφορίες που μπορούν να εξαχθούν περιορίζονται σε περίπου 750 θέσεις ανά αναζήτηση. Θα χρησιμοποιήσουμε τυχαίες στιγμές για να εμφανίσουμε πιο ανθρώπινες (αφήστε το να μαγειρεύει σιγά-σιγά) εξακολουθεί να υπάρχει κάποια πιθανότητα να μπλοκάρει ο λογαριασμός σας, δεν γελάω. Ακόμα, θα χρησιμοποιούσα δευτερεύοντα λογαριασμό.

Εισάγουμε όλα τα πράγματα που θα χρειαστούμε.

από την εισαγωγή σεληνίου webdriver από την επιλογή εισαγωγής επιλογών selenium.webdriver.common.keys Κλειδιά εισαγωγής χρόνου pandas εισαγωγής ως pd εισαγωγής τυχαία

Στη συνέχεια, επικαλούμε το Chrome ζόμπι

#Settings USER_NAME = '' #Εισαγώστε τον λογαριασμό χρήστη εδώ PASS_WORD = '' # Εισαγάγετε τον κωδικό πρόσβασης εδώ url = 'https://www.linkedin.com/login'
#Driver driver location = webdriver.Chrome ('C: \\ Χρήστες \\ oscar \\ Desktop \\ chromedriver.exe')
#Ανοίξτε το zombie driver.get (url) user_element = driver.find_element_by_id ("username") pass_element = driver.find_element_by_id ("κωδικός πρόσβασης") user_element.send_keys (USER_NAME) pass_element.send_keys (PASS_WORD) pass_element.send_keys (Keys.RETURN ) time.lear (5) driver.refresh ()

Μέχρι τώρα, θα πρέπει να είναι ανοιχτό ένα Chrome ζόμπι με το συνδεδεμένο με το LinkedIn. Στη συνέχεια, πρέπει να καθορίσουμε τον τύπο αναζήτησης και τα αποτελέσματα που θα θέλαμε να καταργήσουμε. Δοκιμάστε αυτό το σύνδεσμο, ώστε να έχετε μια αίσθηση του πού πηγαίνουμε. Επειδή πρόκειται για μια βρώμικη και γρήγορη προσέγγιση, πρόκειται απλώς να δημιουργήσουμε μια λίστα με όλους τους συνδέσμους που πρόκειται να επισκεφτούμε, το LinkedIn μας το δίνει σε παρτίδες των 25.

url2 = ['https://www.linkedin.com/jobs/search/?geoId=103035651&location=Berlin%2C%20Germany'] για το x στην περιοχή (25,1000,25): url2.append (url2 [0] + "και έναρξη =" + str (x))

Αν το αποτέλεσμα της αναζήτησης σας έχει λιγότερες από 1000 θέσεις εργασίας, ίσως χρειαστεί να προσαρμόσετε τον αριθμό των συνδέσμων που θέλετε να επισκεφθείτε.

Είμαστε πλέον έτοιμοι να καταργήσουμε. Δημιουργούμε ένα κενό πλαίσιο δεδομένων pandas και λάβουμε τα δεδομένα. Ένα από τα πράγματα που παρατήρησα είναι ότι δεν συνδέονται όλες οι συνδέσεις εργασίας κατά την επίσκεψή σας σε κάθε τοποθεσία. είναι η δική μου εντύπωση ότι πρέπει να μετακινηθείτε ώστε να είναι δυνατή η ανάκτηση τους.

Δοκιμάστε: df_full = pd.DataFrame () για url στο url2: driver.get (url) time.sleep (random.randrange (1, 6, 1)) lists2 = driver.find_elements_by_css_selector ('li.occludable-update.artdeco- list__item - offset-4.artdeco-list__item.p0.ember-view ') για b στις λίστες2: b.location_once_scrolled_into_view time.sleep (random.randrange (1, 5, 1) / 10) lists2 = driver.find_elements_by_css_selector (' li.occludable-update.artdeco-list__item - offset-4.artdeco-list__item.p0.ember-view ') για το l στις λίστες2: try: job_title = l.find_element_by_css_selector (' h3.job-card-search__title '). κείμενο εταιρεία = l.find_element_by_css_selector ('artdeco-entity-lockup-subtitle.job-card-search_company-name'). ("a"). get_attribute ('href') split ("?", 1) [0] df = pd.DataFrame ({'job_name': job_title, 'εταιρεία': εταιρεία, 'πόλη': (df, ignore_index = True) εκτός από την εξαίρεση ως e: print (e) εκτός από την εξαίρεση ως e: print (e) )

Και τελευταίο αλλά όχι το λιγότερο, παίρνουμε το πλαίσιο δεδομένων σε ένα καλό παλιό φύλλο του Excel:

df_full.to_excel ('jobs_berlin.xlsx')

Και το αποτέλεσμα μοιάζει με αυτό. Τώρα, αυτό είναι κάτι με το οποίο μπορώ να δουλέψω, να φιλτράρω εταιρείες, να κάνω παρατηρήσεις και να ανακαλύψω εκείνα που φαίνεται να είναι σε μια εκδήλωση μίσθωσης κλπ.

Αποτέλεσμα

Ως επόμενο βήμα, θα ήθελα να καταγράψω την περιγραφή της θέσης εργασίας. Αυτή η εργασία μπορεί να γίνει σωστά σε αυτό το βήμα ή σε μια δεύτερη εκτέλεση μετά από φιλτράρισμα ορισμένων εργασιών. Απλά κάντε κλικ σε κάθε στοιχείο με σελήνιο και πάρτε τις πληροφορίες στα δεξιά.

Μια σημείωση: Υπάρχει ένα σφάλμα όπου δεν βρίσκονται όλα τα πεδία, αυτό συμβαίνει σε ένα μικρό υποσύνολο εργασιών και μπορεί να εξευγενιστεί με το χέρι αργότερα. Εάν βρείτε μια λύση, ενημερώστε με.

Ευτυχισμένη διάλυση! Μεγάλη τύχη στο κυνήγι εργασίας σας για το Νέο Έτος.