Giter Site home page Giter Site logo

eth0izzle / the-endorser Goto Github PK

View Code? Open in Web Editor NEW
317.0 21.0 55.0 5.72 MB

An OSINT tool that allows you to draw out relationships between people on LinkedIn via endorsements/skills.

Home Page: https://www.darkport.co.uk

License: MIT License

Python 100.00%
osint linkedin selenium python

the-endorser's People

Contributors

eth0izzle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

the-endorser's Issues

Broken CSS selectors

Hi, This script appears to no longer work. I was able to fix the login selectors by using these ids

self.webdriver.find_element_by_id("username").send_keys(self.email)
self.webdriver.find_element_by_id("password").send_keys(self.password)
self.webdriver.find_element_by_css_selector(".login__form_action_container button").submit()

but I am stuck on this one since I'm not sure which DOM element this selector corresponds to.

Message: no such element: Unable to locate element: {"method":"class name","selector":"pv-top-card-section__name"}

Saving the user_id also appears broken but I just commented out the part where it searches for the voyager body response.

Issue with chromedriver - which version to Use ?

Hi when i used a recent version of chromedriver i have problem but if i used a old version of chromedriver its begin to work but i have this follow messages:

Traceback (most recent call last):
File "the-endorser.py", line 47, in
profiles.append(client.get_endorsements(profile_url.geturl()))
File "/home/stephane/the-endorser/linkedin.py", line 101, in get_endorsements
name = self.webdriver.find_element_by_css_selector(".pv-top-card-v3--list > li").text
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 627, in find_element_by_css_selector
return self.find_element(by=By.CSS_SELECTOR, value=css_selector)
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 1014, in find_element
'value': value})['value']
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 318, in execute
self.error_handler.check_response(response)
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".pv-top-card-v3--list > li"}
(Session info: headless chrome=80.0.3987.162)
(Driver info: chromedriver=2.39.562737 (dba483cee6a5f15e2e2d73df16968ab10b38a2bf),platform=Linux 5.4.0-kali4-amd64 x86_64)

With this log:
DEBUG:selenium.webdriver.remote.remote_connection:POST http://127.0.0.1:33073/session {"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "platformName": "any", "goog:chromeOptions": {"extensions": [], "args": ["headless", "window-size=1024x3000", "user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_1 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14A403 Safari/602.1"]}}}, "desiredCapabilities": {"browserName": "chrome", "version": "", "platform": "ANY", "goog:chromeOptions": {"extensions": [], "args": ["headless", "window-size=1024x3000", "user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_1 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14A403 Safari/602.1"]}}}
DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): 127.0.0.1:33073
DEBUG:urllib3.connectionpool:http://127.0.0.1:33073 "POST /session HTTP/1.1" 200 798
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:POST http://127.0.0.1:33073/session/session id OK - Replace by me/url {"url": "https://www.linkedin.com/uas/login",
"sessionId": " session id OK - Replace by me"}
......
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
WARNING:root:Successfully logged in to LinkedIn but failed to extract your identifier.

I don't have any graph in the directory digraph
It doesn't work for me

Unable to run it

Hello,

I'm trying to run it....I've install the chrome driver correctly - I think? i put it in the drivers folder of the-endorser.

When I try to run it I get this:

python the-endorser.py https://www.linkedin.com/in/XXXX https://www.linkedin.com/in/XXX
Traceback (most recent call last):
File "the-endorser.py", line 3, in
from urllib.parse import urlparse
ImportError: No module named parse

Any ideas what could be wrong?

stdout output module

The graph can get rather difficult to read if you add a number of profiles. We should add a console output method that orders the top number of people with endorsement connections.

Issue with web driver phantomjs

/usr/lib/python3/dist-packages/selenium/webdriver/phantomjs/webdriver.py:49: UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '
Traceback (most recent call last):
File "the-endorser.py", line 38, in
with LinkedInClient(config.email, config.password, webdriver=driver.get(driver_path), save_cookie=config.save_cookie) as client:
File "/home/stephane/the-endorser/linkedin.py", line 27, in enter
self.__login(True if self.webdriver.capabilities['browserName'] == 'phantomjs' else False)
File "/home/stephane/the-endorser/linkedin.py", line 53, in _login
self.webdriver.find_element_by_id("username").send_keys(self.email)
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 361, in find_element_by_id
return self.find_element(by=By.ID, value=id
)
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 1014, in find_element
'value': value})['value']
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 318, in execute
self.error_handler.check_response(response)
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/errorhandler.py", line 208, in check_response
raise exception_class(value)
selenium.common.exceptions.WebDriverException: Message: Error - Unable to load Atom 'find_element' from file ':/ghostdriver/./third_party/webdriver-atoms/find_element.js'

Inside the logfile
DEBUG:selenium.webdriver.remote.remote_connection:POST http://127.0.0.1:57927/wd/hub/session/55cf5690-7501-11ea-98f1-b3e06e1e4d82/window/current/size {"width": 1024, "height": 3000, "windowHandle": "current", "sessionId": "55cf5690-7501-11ea-98f1-b3e06e1e4d82"}
DEBUG:urllib3.connectionpool:http://127.0.0.1:57927 "POST /wd/hub/session/55cf5690-7501-11ea-98f1-b3e06e1e4d82/window/current/size HTTP/1.1" 200 74
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:POST http://127.0.0.1:57927/wd/hub/session/55cf5690-7501-11ea-98f1-b3e06e1e4d82/url {"url": "https://www.linkedin.com/uas/login", "sessionId": "55cf5690-7501-11ea-98f1-b3e06e1e4d82"}
DEBUG:urllib3.connectionpool:http://127.0.0.1:57927 "POST /wd/hub/session/55cf5690-7501-11ea-98f1-b3e06e1e4d82/url HTTP/1.1" 200 74
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request
DEBUG:selenium.webdriver.remote.remote_connection:POST http://127.0.0.1:57927/wd/hub/session/55cf5690-7501-11ea-98f1-b3e06e1e4d82/element {"using": "id", "value": "username", "sessionId": "55cf5690-7501-11ea-98f1-b3e06e1e4d82"}
DEBUG:urllib3.connectionpool:http://127.0.0.1:57927 "POST /wd/hub/session/55cf5690-7501-11ea-98f1-b3e06e1e4d82/element HTTP/1.1" 404 114
DEBUG:selenium.webdriver.remote.remote_connection:Finished Request

Trouble running it

I've installed Phantomjs as I can't seem to install chromedrive
when I run python the-endorser.py linkedinuser1 linkedinuser2 I get the following error:
Traceback (most recent call last): File "the-endorser.py", line 3, in <module> from urllib.parse import urlparse ImportError: No module named parse

If I run python3 the-endorser.py linkedinuser1 linkedinuser2 then I get the following error:
Traceback (most recent call last): File "the-endorser.py", line 38, in <module> with LinkedInClient(config.email, config.password, webdriver=driver.get(driver_path), save_cookie=config.save_cookie) as client: File "/root/the-endorser/drivers/chromedriver.py", line 15, in get return webdriver.Chrome(executable_path=driver_path, chrome_options=chrome_options) File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 69, in __init__ desired_capabilities=desired_capabilities) File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 151, in __init__ self.start_session(desired_capabilities, browser_profile) File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 240, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 308, in execute self.error_handler.check_response(response) File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /opt/google/chrome/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

I don't know what's going on. I'm not very experienced with linux.

I'm running Kali Linux
Verified that I have phantomjs version 2.1.1

any help would be amazing!

Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.