Updated as of 5/2/19 - works with new LinkedIn redesign. Thanks to FutoRicky and anhuin69 for the code, all I did was update some links & DOM elements.
Note: After cycling through ~150-200 contacts, it appears that the email addresses begin to populate with your most recent contact's email...I believe that this is LinkedIn trying to prevent bots. Re-starting the script when this happens takes care of the problem. Of course, this is for eductational use only!
Currently not being maintained, but open to Pull Requests.
Scraping data off of LinkedIn is against their User Agreement. This is purely intended for educational purposes.
If you would like to know the process on making this script, you can read about it here
LinkedIn allows you to export all of your connections' info into a csv, except for their emails. Additionally their API stopped allowing the extraction of emails around 2013-2014. Why don't we have access to our connections emails through their data export if we both agreed to share that info/data?
- Clone this repo
git clone https://github.com/FutoRicky/linkedin-email-extractor.git
or download - Move into the repo directory
cd linkedin-email-extractor
- Install dependencies
npm install
- You will need the
Connections.csv
file that LinkedIn provides with the data export. - Add the
Connections.csv
file into thelinkedin-email-extractor
directory - Run
npm start
ornode --harmony index.js
- Enter LinkedIn Credentials when prompted
- Wait for email extraction process to finish
- An
email.txt
file will be generated with all the emails inside thestored_data
folder.
LinkedIn recently updated their UI and it affected the scraper logic. Some people already have the updated UI but some don't, so when you start the script you will be prompted to choose what version do you have. To know what version you have, go into the network
section and look at the left side panel.
If your panel looks like this, then you are still on the old
version:
If your panel looks like this, then you are one the new
version:
If linkedin updates their page and changes the class of an element used in the script it will stop working. You can check out the source code and verify if any class has changed on linkedin and update the script to make it work again. I can't be constantly checking linkedin to see if they have changed something that breaks the script.