diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000..8faf7b8 --- /dev/null +++ b/Pipfile @@ -0,0 +1,18 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +beautifulsoup4 = "==4.11.1" +certifi = "==2022.12.7" +charset-normalizer = "==2.1.1" +idna = "==3.4" +requests = "==2.28.1" +soupsieve = "==2.3.2.post1" +urllib3 = "==1.26.13" + +[dev-packages] + +[requires] +python_version = "3.10" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 0000000..a1e60b1 --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,77 @@ +{ + "_meta": { + "hash": { + "sha256": "2cd8a760cffc3047aa36a5360517bf955ce4b8ee7385f934afb37750819bd08b" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.10" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "beautifulsoup4": { + "hashes": [ + "sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30", + "sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693" + ], + "index": "pypi", + "version": "==4.11.1" + }, + "certifi": { + "hashes": [ + "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3", + "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" + ], + "index": "pypi", + "version": "==2022.12.7" + }, + "charset-normalizer": { + "hashes": [ + "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", + "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" + ], + "index": "pypi", + "version": "==2.1.1" + }, + "idna": { + "hashes": [ + "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", + "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" + ], + "index": "pypi", + "version": "==3.4" + }, + "requests": { + "hashes": [ + "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", + "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" + ], + "index": "pypi", + "version": "==2.28.1" + }, + "soupsieve": { + "hashes": [ + "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759", + "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d" + ], + "index": "pypi", + "version": "==2.3.2.post1" + }, + "urllib3": { + "hashes": [ + "sha256:47cc05d99aaa09c9e72ed5809b60e7ba354e64b59c9c173ac3018642d8bb41fc", + "sha256:c083dd0dce68dbfbe1129d5271cb90f9447dea7d52097c6e0126120c521ddea8" + ], + "index": "pypi", + "version": "==1.26.13" + } + }, + "develop": {} +} diff --git a/README.md b/README.md index d1c74c3..7379abe 100644 --- a/README.md +++ b/README.md @@ -4,27 +4,28 @@ # Sponsor Open Source Tooling -* Feel free to sponsor me for maintaining the tool: https://github.com/sponsors/vysecurity +- Feel free to sponsor me for maintaining the tool: https://github.com/sponsors/vysecurity # Disclaimer -* The project is to be used for educational and testing purposes only. +- The project is to be used for educational and testing purposes only. # Authors -* LinkedInt by Vincent Yiu (@vysecurity): https://www.vincentyiu.com | https://vysecurity.rocks -* Original Scraper by Danny Chrastil (@DisK0nn3cT): https://github.com/DisK0nn3cT/linkedin-gatherer +- LinkedInt by Vincent Yiu (@vysecurity): https://www.vincentyiu.com | https://vysecurity.rocks +- Original Scraper by Danny Chrastil (@DisK0nn3cT): https://github.com/DisK0nn3cT/linkedin-gatherer Contributors: -* Leesoh -* harshil-shah004 +- Leesoh +- harshil-shah004 # Installation + ``` -git clone https://github.com/vysecurity/LinkedInt -cd LinkedInt -pip install -r requirements.txt +git clone https://github.com/vysecurity/LinkedInt && cd LinkedInt +pip install pipenv +pipenv install ``` # Change Log @@ -32,31 +33,36 @@ pip install -r requirements.txt **[v1.1 01-05-2021]** Fixes: -* Temporary fix for location field missing + +- Temporary fix for location field missing **[v1.1 27-03-2021]** Fixes: -* Fixed the authentication flow -* Fixed hunter API demo key - removed + +- Fixed the authentication flow +- Fixed hunter API demo key - removed Additions: -* Added better looking missing image value for the profiles with no photo. -* Embedded all images into the HTML file to allow for offline viewing. -* Added credits + +- Added better looking missing image value for the profiles with no photo. +- Embedded all images into the HTML file to allow for offline viewing. +- Added credits **[v0.1 BETA 12-07-2017]** Additions: -* UI Updates -* Constrain to company filters -* Addition of Hunter for e-mail prediction + +- UI Updates +- Constrain to company filters +- Addition of Hunter for e-mail prediction # Usage 1. Put in LinkedIn credentials in LinkedInt.cfg 2. Put Hunter.io API key in LinkedInt.cfg -3. Run LinkedInt.py and follow instructions (example below). +3. Run `pipenv shell` to activate virtual environment +4. Run `python LinkedInt.py` and follow instructions (example below). # Example diff --git a/requirements.txt b/requirements.txt index 27edbb7..8cb23ba 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ -beautifulsoup4==4.6.0 -certifi==2018.1.18 -chardet==3.0.4 -idna==2.6 -requests==2.20.0 -thready==0.1.5 -urllib3==1.26.5 +beautifulsoup4==4.11.1 +certifi==2022.12.7 +charset-normalizer==2.1.1 +idna==3.4 +requests==2.28.1 +soupsieve==2.3.2.post1 +urllib3==1.26.13