Skip to main content

Class to perform web selenium and requests operations on web systems

Project description

BotWeb

BotWeb é uma ferramenta poderosa para automação de operações web, combinando as bibliotecas Selenium e Requests. Este projeto foi projetado para simplificar tarefas como scraping de dados, interações em sites e testes automatizados.

Funcionalidades

  • Automatização com Selenium: Controle completo de navegadores para interagir com elementos de páginas web.
  • Requisições HTTP com Requests: Realize requisições GET, POST e outras operações HTTP.
  • Integração entre Selenium e Requests: Flexibilidade para usar o melhor das duas bibliotecas em suas operações web.

Requisitos

  • Python 3.10 ou superior.
  • Navegador compatível com o Selenium (ex.: Chrome, Firefox, Edge).

Instalação

Passo 1: Instalar o Pacote

Para instalar o pacote, execute:

pip install botweb

Exemplo de Uso

from botweb import BotWeb


class MyBot(BotWeb):
    def __init__(self, *args, **kwargs):
        super().__init__(
            # The prefix name to be concatenated with the credentials_keys
            # eg. WEB_SYSTEM_USERNAME, WEB_SYSTEM_PASSWORD
            # these variables will be setted as environment variables
            # with the values asked from the terminal.
            # To prevent of every run ask the credentials from the terminal
            # restart the IDE after provide the credentials values
            prefix_env="WEB_SYSTEM",
            credentials_keys=["USERNAME", "PASSWORD"]
            )

    def login(self):
        """My login logic here! (Abstract method needs to be implemented)"""
        # self._enter_username(self.credentials['USERNAME'])
        # self._enter_password(self.credentials['PASSWORD'])
        # self._submit()

        # This method sets the cookies into the self.session: requests.Session
        # It enable making requests inside the system
        # see the post_example() method bellow
        self.get_cookies()

    def post_example(self):
        # The headers inspected from the network request
        headers = {
            "accept": "application/json, text/plain, */*",
            "accept-language": "pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7",
            "authorization": "",
            "content-type": "application/json;charset=UTF-8",
        }

        # If the system store the token in the local storage it would work,
        # else override it with your own logic to get the token authorization
        headers.update({
            "authorization": self.get_token_authorization_from_storage()
            })

        # The payload inspected from the network request
        body = 'a=something&b=anotherthing'
        response = self.session.post(
            "https://example.com.br",
            headers=headers,
            data=body,
        )
        if response.status_code == 200:
            print(response.json())


if __name__ == '__main__':
    with MyBot() as mybot:
        mybot.init_browser(headless=False, browser="firefox")
        mybot.open(
            "https://github.com/login"
        )
        mybot.login()
        # mybot.post_example()
        input("Digite algo para continuar...")

Contribuições

Contribuições são bem-vindas! Para contribuir:

  1. Fork este repositório.
  2. Crie um branch para sua funcionalidade ou correção:
    git checkout -b minha-funcionalidade
    
  3. Envie suas alterações:
    git commit -m "Adiciona nova funcionalidade"
    
  4. Submeta um pull request.

Licença

Este projeto está licenciado sob a Licença MIT.

Contato

Para mais informações ou suporte, visite o repositório no GitHub.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

botweb-0.2.5.tar.gz (11.7 kB view details)

Uploaded Source

File details

Details for the file botweb-0.2.5.tar.gz.

File metadata

  • Download URL: botweb-0.2.5.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for botweb-0.2.5.tar.gz
Algorithm Hash digest
SHA256 d14d273775ebb6bbd14e7162bccf5c2f771c04001b83bc65bf971a4d8d76e74a
MD5 52c9d2682ba32205fbd080ee84f90098
BLAKE2b-256 e7fcc83c43d176c87de16c5df94cb8e8c8ce2f0ffac29ba9a7226f98d52969df

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page