Robos no Python
Utilizando CMD
o comando CD navega de pasta em pasta
o comando mkdir cria uma pasta basta colocar um nome apos esse comando
dir ve o conteudo da pasta
para voltar uma pasta basta digitar CD ..
pip install intala bibliotecas
PYAUTOGUI
pyautogui.position()
OU PARA SER MAIS FACIL
pyautogui.displayMousePosition()
pyautogui.moveTo(x=...,y=..., duration = 3)
pyautogui.dragTo() vai arrastar o mouse na tela
pyautogui.dragRel(150,150, duration=2)
é um drag relativamente da onde o mouse ja estava
PARA PARAR É SO MOVER O MOUSE PARA O TOPO ESQUERDO
Tirar screenshots
pyautogui.screenshot('my_screenshot.png')
pyautogui.screenshot(region=(0,0,300,400))
Confidence - ele melhora a precisão que o python deve localizar a imagem na tela,
as vezes não consegue localizar devido a pequeas diferenças de pixels
pyautogui.locateOnScreen('tet.png', confidence=0.8)
pip install opencv-python
grayscale desatura a imagem na tela, acelera a localização
MEXENDO COM O TECLADO
pyautogui.typewrite('')
Escreve
Funções do teclado
press()
pyautogui.press('enter')
pyautogui.press('f5')
pyautogui.KEYBOARD_KEYS
Mostra todas as teclas que é possível digitar no press()
formas de apertar o botão
pressionando botões
pyautogui.KeyDown('ctrl')
pyautogui.keyDown('ALT')
pyautogui.keyDown('tab')
Soltando Botões
pyautogui.keyUp('tab')
ou
Pyautogui.hotkey('ctrl','alt','tab')
pyautogui.PAUSE = 1 Define uma pause de 1 segundo por ação, ou seja não precisa
colocar o time a todo momento na pagina
Payutogui.FAILSAFE = poder arrastar o mouse para o topo esquerdo caso de algum erro
ou o usuario não queira completar o programa
É POSSIVEL apenas clicar em win + r e digitar o URL do navegador e ele abrirá
apartir dali mesmo
para executar o programa pelo cmd basta achar o caminho e digitar "python" e logo
após o nome pasta que o programa foi colocado ".py" que será como dar um play
WEB SCRAPING
por que web scraping e não API, alguns sites não a fornecem, a melhor maneira de
extrair dados é com eles mas alguns sites não o tem
o Webscraping
Acessa o HTML e extrai informações úteis, é o termo para descrever um programa que
extrai e processa grandes quantidades de dados
ele extrai dados automaticamente e apresenta de forma legível ao usuário
Diminui drasticamente o tempo necessario para extrair uma quantidade grande de
dados
presição
robots.txt
é uma pagina de regras para um robo, protocolo de exclusão de robos
BEAUTIFUL SOUP
Biblioteca de python que extrai dados dearquivos HTML e XML, extrai tablas, listas,
parágrafos e também pode colocar filtros para info
EXEMPLO DE CODIGO PARA ARQUIVO INTERNO
from bs4 import BeautifulSoup
html_file = open("generic_simple.html", mode="r", encoding="utf-8")
soup = BeautifulSoup(html_file)
depois do nome as coisas que são colocadas depois resumindo em miudos significa o
Beautiful soup podera ler caracteres especias
PARA MOSTRAR A CAPACIDADE DO BEAUTIFUL SOUP
print(dir([objeto criado]soup)) O objeto soup foi criado mais acima
Tambêm pode usar o help
print(help(soup)) e depois ir apertando enter e ele mostrara toda hora
E para sair basta apertar "q"
OUTRA FORMA DE MOSTRAR O OBJETO CRIADO NA TELA
Alem de poder digitar o print([objeto])
pode-se digitar [objeto].prettify() isso mostrará na tela com /n indicando quebra
de linha
Tem o [objeto].get_text() Esse pegará apenas o texto do html
get_text().replace('\n',' ') isso trocará os \n por espaços
[objeto].title = resultara em mostrar o titulo da pagina mas mostrará como se fosse
o innerHTML do javascript junto do texto e tags
[objeto].title.string = mostrará apenas o que esta escrito dentro da tag
[objeto].title.name = mostrara o nome da tag
[objeto].title.parent = mostrará de qual tag ele é filho, o title fica dentro do
head então mostrará head e seu conteudo todas as string e filhos que ele tem
[objeto].title.parent.name = mostrará tudo acima mas apenas o nome da tag e não seu
conteudo
[objeto].title.parent.parent.name = mostrará o html por exemplo o parent ira
mostrando os elemento pais de todos
CHILDREN = mostra todos que estão dentro daquele elemento pai
list([objeto].div.children) = e ele mostrará apenas os elementos filhos
for i in list(soup.div.children):
print(i.name)
print:
None
p
None
PARA ACESSAR UM LINK NO BS4
soup.a["href"]
PARA FILTRAR MELHOR BASTA USAR O FIND
soup.find("div", id ="idmaluco")
PARA PEGAR UM ELEMENTO QUE CONTEM UMA CLASSA DEVE SE DIGITAR:
soup.find("div", class_ = "article")
`Esse icone de underline significa elemento classe que
"contem" article
PARA MOSTRAR QUANTOS ELEMENTOS DESSES TEM
len(soup.find_all('div', class_='article')) = Mostrara quando elementos que estão
numa div e tem classe article
soup.find_all('div', class_='article')[0] mostra quantos elementos tem
RESUMO
soup.title = achara o titulo da pagina e mostrara tudo de tag a string
soup.find("title") = você pode filtrar melhor
soup.find_all("title") = quando se quer encontrar varios elementos
AQUI COMEÇA A AULA PRATICA, LA NA ABA BeutifulSoup.py que criei, continuação
lá.....0
PARA LIMPAR O CMD BASTA DIGITAR cls
COMO USAR O BEAUTIFUL SOUP EM OUTROS SITES NA WEB
Bibioteca requests
permite que requisite o documento html de sites sem precisar abrir o navegador
requests.get('link')
if page.status_code == 200: o page status mostra se deu ou não deu certo a extração
dos dados do link, se deu o valor vai dar 200 se não deu errado
for link in soup.find_all('a'):
print(link.get('href', 'erro')) o get ajuda para se der erro na busca
dos href a mensagem de erro que foi escrita como string aparecerá
SELENIUM
Ajuda a automatizar processos
webdriver = é um servidor web que faz com que o selenium consiga conectar ao
browser