Авторизация \ отправка сообщения на RuTracker

Помогите, пожалуйста, разобраться с отправкой сообщения на RuTracker.

import requests

session = requests.session()

session.post('https://rutracker.org/forum/login.php', {
     'login_username': 'nafanz',
     'login_password': 'XXX',
     'login': 'pushed',
     'redirect': 'index.php'
}
                  )

pm = session.post('https://rutracker.org/forum/privmsg.php?mode=post&u=XXX',
            {
                'subject': 'Test',
                'message': 'Test-test',
            }
            )

print(pm.text)

Авторизацию я прошел cудя по тому, что у меня возвращается:

<span class="top-menu-username-wrap">
<img class="log-out-icon" src="https://static.t-ru.org/templates/v1/images/logout_1.png" onclick="return post2url('login.php', {logout: 1});" alt="" title="Выход">
<a id="logged-in-username" class="truncated-text" href="https://rutracker.org/forum/profile.php?mode=viewprofile&amp;u=4008894">nafanz</a>
</span>

но:

<div class="spacer_10"></div>
<table class="forumline message">
<tr>
<th>Информация</th>
</tr>
<tr>
<td>
<div class="mrg_16">
Запрос не был обработан [форма не подписана]<br><br>
Вернитесь назад, обновите страницу и повторите запрос еще раз<br><br>
Возможные причины: у вас отключен JavaScript, или сессия устарела<br><br>
<a href="#" onclick="history.back(); return false;">Вернуться на предыдущую страницу</a>
</div>
<div class="mrg_12">
<div class="w60 bCenter mrg_10">
<p class="med">это сообщение не было отправлено:</p>
<textarea rows="12" cols="92" class="med w100">Test

Test-test</textarea>
</div>
</div>
<div class="mrg_12"></div>
</td>
</tr>
</table>
<div class="spacer_10"></div>

В чем может быть проблема?


Ответы (2 шт):

Автор решения: eri

Это прозрачная CAPTCHA на яваскрипте. Если вы написали сообщение и не произвели других действий (например, не подвигали мышкой) в окне - оно не отправится.

Попробуйте Selenium

→ Ссылка
Автор решения: Ivan Simonov

Решил проблему так:

from selenium import webdriver

driver = webdriver.Firefox(executable_path=r'/home/XXX/Документы/geckodriver/geckodriver')
driver.get("https://rutracker.org/forum/login.php")

login_username = driver.find_element_by_xpath('//*[@id="login-form-full"]/table/tbody/tr[2]/td/div/table/tbody/tr[1]/td[2]/input')
login_username.send_keys("Логин")

login_password = driver.find_element_by_xpath('//*[@id="login-form-full"]/table/tbody/tr[2]/td/div/table/tbody/tr[2]/td[2]/input')
login_password.send_keys("Пароль")

login = driver.find_element_by_xpath('//*[@id="login-form-full"]/table/tbody/tr[2]/td/div/table/tbody/tr[4]/td/input')
login.click()

driver.get("https://rutracker.org/forum/privmsg.php?mode=post&u=XXX")

subject = driver.find_element_by_xpath('//*[@id="post-msg-subj"]')
subject.send_keys("Test")

message = driver.find_element_by_xpath('//*[@id="post-textarea"]')
message.send_keys("Test-test")

send = driver.find_element_by_xpath('//*[@id="post-submit-btn"]')
send.click()
→ Ссылка