This library was created in order to help users quick-start their webscraping project. It includes several useful functions including a browser handler, new tab functionality, and more.
$ pip3 install fBrowser
You can decorate your function with a browserHandler. This will create the driver and properly quit it if an exception occurs or when the program ends.
from time import sleep
from fBrowser import browserHandler
@browserHandler()
def main(driver):
driver.get('https://www.google.com')
sleep(5)
main()
You can also pass in these optional arguments:
@browserHandler(path='', firefox=False, proxy='<host/ip>:<port>',
headless=True, implicitWaitTime=60, incognito=True)
Run a function in a new tab of Chrome. It will automatically close and switch contexts when it finishes executing.
You can use the newTab
function to decorate your selenium functions. Doing so will execute your function in a new tab of the browser. Your decorated function must have its first parameter for the webdriver.
from time import sleep
from fBrowser import browserHandler, newTab
@newTab
def loadTheVerge(driver):
driver.get('https://www.theverge.com')
sleep(2)
@browserHandler()
def main(driver):
driver.get('https://www.google.com')
sleep(2)
loadTheVerge(driver)
main()
Use this helper function to login into a site. Simply pass in your email / username and your password. (This function assumes that the input tags in the form have attributes @type=username, @type=email, or @type=password).
import fBrowser
from fBrowser import browserHandler
@browserHandler()
def main(driver):
driver.get(
'https://stackoverflow.com/users/login')
fBrowser.login(driver, email='[email protected]', password='abc123')
main()
Quickly fill multiple inputs with either a single value or multiple values.
import fBrowser
from fBrowser import browserHandler
@browserHandler()
def main(driver):
driver.get('example.com')
# A list of xpaths to the inputs
xpaths = ['//*[@name="foo"]', '//*[@name="bar"]', '//@name="fooBar"']
# Fill with multiple values
fBrowser.fillInputs(driver, xpaths, ['value1', 'value2', 'value3'])
# Or pass in one value
fBrowser.fillInputs(driver, xpaths, 'hello world')
main()
Don't want to get flagged as a bot? Fill your inputs using a human-like typing speed.
import fBrowser
from time import sleep
from fBrowser import browserHandler
@browserHandler()
def main(driver):
driver.get('https://www.google.com')
chatInput = driver.find_element_by_xpath('//*[@name="q"]')
# Will input the string at a human-like typing speed
fBrowser.humanType(driver, chatInput, 'Hello world!')
sleep(5)
main()
- Fork it (https://github.com/FastestMolasses/fBrowser/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request