Python

pip

Instalando pip2

wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
sudo python2.7 get-pip.py

Atualizando o pip

python -m pip install -U pip

Personalizando Cabeçalho nas Requisições

Quando for utilizar Python, sempre preecha o Headers para parecer um acesso realizado por humano e evitar erros como HTTP 403, como no exemplo abaixo:

import requests

headers = {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate, sdch",
"Accept-Language": "en-US,en;q=0.8,es;q=0.6,sv;q=0.4",
"Cache-Control": "max-age=0",
"Connection": "keep-alive",
"Cookie": "_gauges_unique_hour=1; _gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1",
"Host": "docs.python-requests.org",
"If-Modified-Since": "Wed, 03 Aug 2016 20:05:34 GMT",
"If-None-Match": 'W/"57a24e8e-e1f3"',
"Referer": "https://www.google.com/",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36"
}

req = requests.get("http://<site>.com", headers=headers)
print req.status_code
print req.text

Caso esteja recebendo erro de certificado ao fazer uma requisição via requests, utilize o seguinte modelo:

import requests
requests.packages.urllib3.disable_warnings()
requests.get("http://<site>.com", verify=False)

Proxy

Abaixo usamos o exemplo no ip loopback e na porta 8080, assim podemos usar o Burp Suite como proxy

import os, requests
os.environ['HTTPS_PROXY'] = 'http://127.0.0.1:8080'

requests.get("https://site.com", verify=False)

# Ou
import requests
requests.get("http://site.com", proxies={'http':'http://localhost:8080'})

Virtual Environment

python3 -m venv env
source ./env/bin/activate
python3 -m pip install -r requirements.txt

Concatenando Strings em Variável

Esse script nada mais é, do que um simples concatenador de strings grandes. Isso pode ser útil em casos onde temos uma strings muito grande e precisamos que essa string seja dividida em várias linhas (porém na mesma variável).

str = "minha string gigante....."

n = 50
for i in range(0, len(str), n):
	print "Str = Str + " + '"' + str[i:i+n] + '"'

Debug (Terminal)

Permite ver e alterar valores de variáveis no meio da execução

import pdb
x = 'Minha variavel'
pdb.set_trace()

Erro egg_info

Quando receber erro Error: invalid command 'egg_info'. ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output., execute:

pip install --upgrade setuptools

Sites

# Lib IA
https://www.tensorflow.org/
https://scikit-learn.org/stable/

Last updated