Python: Как я могу перебрать POST-запрос без изменения User-Agent? - PullRequest
0 голосов
/ 09 июня 2019

Я пишу скрипт для входа на несколько форумов одного типа (phpBB).Когда я перебираю список URL-адресов, большинство URL-адресов дают мне только тот ответ, который я хочу получить от разных пользовательских агентов.

Остальные URL-адреса обычно дают код ответа 200, но возвращают что-то вроде этого:

<div class="error">The submitted form was invalid. Try submitting again.</div> <dl>

Я протестировал пользовательские агенты с указанными ниже URL-адресами:

def auth_check():
    errorlist = []
    windowsnt_usera = []
    with open('other_phpBB_still_errors5.txt', "r") as f:
        for item in f:
            try:
                item2 = item.strip()
                #headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A'}
                #headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0'}
                #headers = {'User-Agent': 'Mozilla Firefox Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0'}
                #headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 7.0; BLL-L22 Build/HUAWEIBLL-L22)'
                 #                         ' AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Mobile Safari/537.36'}
                #headers = {'User-Agent': 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148'}
                headers = {'User-Agent': 'Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.18'}
                s = requests.Session()
                r = s.get(item2, headers=headers)
                soup = BeautifulSoup(r.text, "html.parser")
                creation = soup.find('input', {'name': 'creation_time'})['value']
                token = soup.find('input', {'name': 'form_token'})['value']

                payload = {'username': 'georgejetson', 'password': 'Msafsdfwe23', 'login': 'Login',
                           'redirect': './index.php?', 'creation_time': creation, 'form_token': token}

                print(token, creation)
                print(s.cookies)
                #print(r.status_code, soup)
                response = s.post(item2, headers=headers, data=payload)
                soup2 = BeautifulSoup(response.text, "html.parser")
                print(response.status_code)
                link = soup2.find('a', href=True, text='Board Administrator')
                print(link)

Я составил список, с которыми работают URL-адресакакие пользовательские агенты, и я планирую повторять каждый список по одному.Я пытаюсь быть максимально эффективным.

Есть ли лучший способ перебирать запросы POST без изменения пользовательского агента?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...