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:
- Fork este repositório.
- Crie um branch para sua funcionalidade ou correção:
git checkout -b minha-funcionalidade
- Envie suas alterações:
git commit -m "Adiciona nova funcionalidade"
- 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.4.tar.gz
(11.6 kB
view details)
File details
Details for the file botweb-0.2.4.tar.gz
.
File metadata
- Download URL: botweb-0.2.4.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a01dd684b52432e2fb9340fa34c553906f5ab5966be58795eb420f07625854d3 |
|
MD5 | 5a3fd841c9f42ba2bdc566801780bc7a |
|
BLAKE2b-256 | 9d62e3959470033b049d4bcc55bbdbdbd7219db125c2be25f19bd1478fc8fb00 |