Задать вопрос
@NO1nam

Почему блокирует ip через request?

Когда пытаюсь авторизоваться через Request Post блокирует мой IP
А если пробовать войти на тот же аккаунт только через Selenium все проходит отлично
Код на Request запросах
import requests
from bs4 import BeautifulSoup as bs4
import time
import random
import threading

accs = list(set(open("data.txt", encoding="utf-8").read().split('\n')))
def check():
    while accs:
        acc = random.choice(accs)
        accs.remove(acc)
        login = acc.split(":")[0]
        password = acc.split(":")[1]
        while True:
             try:
                ses = requests.Session()
                ses.headers={
                    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
                    "Accept-Encoding": "gzip, deflate",
                    "Accept-Languag": "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7",
                    "Upgrade-Insecure-Requests": "1",
                    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"
                    }
                page = ses.get("http://mrush.mobi/welcome").text
                soup = bs4(page, 'html.parser')
                data = {
                    "name": login,
                    "password": password
                    }
                styles = soup.find_all('style')
                for style in styles:
                    if not "none" in str(style):
                        if not "hidden" in str(style):
                            try:
                                str(style).split('margin-left: ')[1].split('px')[0]
                            except:
                                find = str(style).split('.')[1].split('{')[0]
                div = soup.find('div', {"class": find})
                id = str(div).split('" type="checkbox" value=""/>я не')[0].split('"')[-1]
                data[id] = ""
                login_req = ses.post("http://mrush.mobi/login", data=data)
                if not login_req.url.startswith("http://mrush.mobi/welcome?error="):
                    open("good.txt", "a", encoding="utf-8").write("{}:{}\n".format(login, password))
                    print("{}:{} - Good".format(login, password))
                    break
                else:
                    print("{}:{} - Bad".format(login, password))
                    break
             except Exception as e:
                print(e)
            
for i in range(1):
    thread = threading.Thread(target=check)
    thread.start()

Код на Selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

def todo(driver, log, passw):
    
    url = 'http://mrush.mobi/'

    driver.get(url)
    #Авторизация
    print(log)
    driver.find_element_by_css_selector("input[name='name']").send_keys(log)
    driver.find_element_by_css_selector("input[name='password']").send_keys(passw)
    checkboxes = driver.find_elements(By.XPATH, '//input[@type="checkbox"]')
    for box in checkboxes:
        try:
            box.click()
        except Exception:
            pass
    driver.find_element_by_css_selector("input[type='submit']").click()
    #Выход из аккаунта
    logout = driver.get("http://mrush.mobi/logout");

driver = webdriver.Chrome('C:/Users/Admin/Desktop/mrush/chromedriver')
while (True):
    with open('data.txt', 'r', encoding="utf-8") as f:
        file = f.read().split('\n')
    for line in file:
        ln = line.split(':')
        todo(driver, ln[0], ln[1])
  • Вопрос задан
  • 260 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Python-разработчик
    8 месяцев
    Далее
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Потому что на многих сайтах используется защита от парсеров.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
там js подгружается с куками/сессией

распарси его и добавь в requests

но быстрее через JS браузер все же
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы