Advertisement
vsokoltsov

Untitled

Jan 2nd, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.50 KB | None | 0 0
  1. import os
  2. import logging
  3. from selenium import webdriver
  4. from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
  5. from selenium.webdriver.chrome.options import Options
  6. from selenium.common.exceptions import NoSuchElementException
  7. import json
  8. import time
  9. import ipdb
  10.  
  11. class ParserBase:
  12.     """ Base class for parsers """
  13.  
  14.     def __init__(self):
  15.         """ Initialize driver for the parser """
  16.  
  17.         # host = os.environ.get('PHANTOM_JS_HOST')
  18.         # port = os.environ.get('PHANTOM_JS_PORT')
  19.         # chrome_options = Options()
  20.         # chrome_options.add_argument("--headless")
  21.         # chrome_options.add_argument('--disable-web-security')
  22.         # chrome_options.add_argument('--allow-running-insecure-content')
  23.         self.driver = webdriver.PhantomJS(
  24.             executable_path='./node_modules/.bin/phantomjs'
  25.         )
  26.         # webdriver.Remote(
  27.         #     command_executor='http://{}:{}'.format(host, port),
  28.         #     desired_capabilities=chrome_options.to_capabilities()
  29.         # )
  30.         logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG)
  31.         self.logger = logging.getLogger()
  32.  
  33.  
  34. class LinkedinParser(ParserBase):
  35.     """ Class for linked in parsing """
  36.  
  37.     base_url = 'http://linkedin.com'
  38.     search_url = 'https://www.linkedin.com/search/results/people'
  39.  
  40.     def authorize(self, login, password):
  41.         """ Authorize user in linked in with his credentials """
  42.  
  43.         try:
  44.             self.logger.info('Start linkedin authorization')
  45.             self.driver.get('http://linkedin.com')
  46.             parser.driver.save_screenshot('test_1.png')
  47.             email_field = self.driver.find_element_by_id("login-email")
  48.             password_field = self.driver.find_element_by_id("login-password")
  49.             submit_button = self.driver.find_element_by_id("login-submit")
  50.  
  51.             email_field.send_keys(login)
  52.             password_field.send_keys(password)
  53.             submit_button.click()
  54.             self.logger.info('Succesfully complete authorization')
  55.         except NoSuchElementException as e:
  56.             error = json.loads(e.msg)
  57.             self.logger.error(error['errorMessage'])
  58.  
  59.  
  60. parser = LinkedinParser()
  61. parser.authorize(<Login>, <Password>)
  62. parser.driver.get('https://www.linkedin.com/search/results/people')
  63. parser.driver.save_screenshot('test_2.png')
  64. parser.driver.execute_script("window.scrollTo(0, document.documentElement.scrollHeight);")
  65. parser.driver.save_screenshot('test_3.png')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement