Skip to content

Instantly share code, notes, and snippets.

@wangke0809
Forked from dhruvkar/browser.py
Created August 15, 2020 06:20
Show Gist options
  • Select an option

  • Save wangke0809/a3845d349f154e95a00e419b27591f5d to your computer and use it in GitHub Desktop.

Select an option

Save wangke0809/a3845d349f154e95a00e419b27591f5d to your computer and use it in GitHub Desktop.

Revisions

  1. @dhruvkar dhruvkar revised this gist Mar 22, 2019. No changes.
  2. @dhruvkar dhruvkar revised this gist Mar 22, 2019. 1 changed file with 15 additions and 3 deletions.
    18 changes: 15 additions & 3 deletions browser.py
    Original file line number Diff line number Diff line change
    @@ -7,10 +7,12 @@
    Also install:
    pip install requests
    pip install selenium
    pip install PyVirtualDisplay
    """

    import requests

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    @@ -33,9 +35,19 @@ def __init__(self, flavor):
    self.driver = webdriver.Firefox()
    else:
    raise Exception("need to specify 'chrome' or firefox' when creating a Browser")




    def transfer_to_requests(self):
    headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"
    }
    self.session = requests.session()
    self.session.headers.update(headers)
    for cookie in self.browser.get_cookies():
    c = {cookie['name']: cookie['value']}
    sesh.cookies.update(c)
    return self.session

    # example usage
    b = Browser("chrome")
    b.driver.get("https://www.google.com")
    b.driver.get("https://www.google.com")
  3. @dhruvkar dhruvkar revised this gist Mar 22, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion browser.py
    Original file line number Diff line number Diff line change
    @@ -29,7 +29,7 @@ def __init__(self, flavor):

    if flavor.lower() == "chrome":
    self.driver = webdriver.Chrome()
    elif flavor.lower() == "firefox": un
    elif flavor.lower() == "firefox":
    self.driver = webdriver.Firefox()
    else:
    raise Exception("need to specify 'chrome' or firefox' when creating a Browser")
  4. @dhruvkar dhruvkar revised this gist Mar 22, 2019. 1 changed file with 5 additions and 0 deletions.
    5 changes: 5 additions & 0 deletions browser.py
    Original file line number Diff line number Diff line change
    @@ -4,6 +4,11 @@
    If you use Firefox, get Geckodriver and put in your PATH:
    https://github.com/mozilla/geckodriver/releases
    Also install:
    pip install selenium
    pip install PyVirtualDisplay
    """


  5. @dhruvkar dhruvkar created this gist Mar 22, 2019.
    36 changes: 36 additions & 0 deletions browser.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,36 @@
    """
    If you use Chrome, get Chromedriver and put in your PATH:
    http://chromedriver.chromium.org/downloads
    If you use Firefox, get Geckodriver and put in your PATH:
    https://github.com/mozilla/geckodriver/releases
    """


    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    from selenium.webdriver.support.ui import WebDriverWait, Select
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.common.exceptions import NoSuchElementException, TimeoutException, UnexpectedAlertPresentException

    from pyvirtualdisplay import Display


    class Browser(object):
    # initialize with 'chrome' or 'firefox' as the driver
    def __init__(self, flavor):
    self.display = Display(visible=0, size=(2880, 1800)).start()

    if flavor.lower() == "chrome":
    self.driver = webdriver.Chrome()
    elif flavor.lower() == "firefox": un
    self.driver = webdriver.Firefox()
    else:
    raise Exception("need to specify 'chrome' or firefox' when creating a Browser")



    # example usage
    b = Browser("chrome")
    b.driver.get("https://www.google.com")