gpt4 book ai didi

python - 使用 Python 执行 vBulletin-Forum 登录

转载 作者:太空宇宙 更新时间:2023-11-03 19:55:03 25 4
gpt4 key购买 nike

我想登录 vbulletin 论坛。

登录后您将被重定向到主页。我想要论坛帖子的内容,该内容仅在登录时可见。

我发现了这个问题:Login to Vbulletin forum with python

我的代码如下所示:

username = "testuser"
password = "testpassword"
try:
FORUM_URL = 'https://forumurl.com/forum/'
session = requests.Session()
session.post(FORUM_URL + 'login.php?do=login', {
'vb_login_username': username,
'vb_login_password': password,
'vb_login_md5password': hashlib.md5(password.encode()).hexdigest(),
'vb_login_md5password_utf': hashlib.md5(password.encode()).hexdigest(),
'cookieuser': 1,
'do': 'login',
's': '',
'securitytoken': 'guest'
})
except Exception as e:
print(str(e))

q = session.get("https://forumurl.com/forum/showthread.php?123456")
print(str(q.text))

这会生成以下输出:(已翻译)

<meta http-equiv="refresh" content="1">
<noscript>
<p>Javascript and Cookies need to be enabled</p>
</noscript>
<script>
createCookie("test", "md5hashofcookie");
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}

</script>

此后,我尝试使用 firefoxdriver 进行登录,它也得到了上面的输出。

我还尝试使用 mechanize 来完成此操作并使用以下代码:

br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [('user-agent', ' Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0'),
('accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')]

br.open("https://testforum.com/forum/login.php?do=login")

br.form = list(br.forms())[0]
br["vb_login_username"] = username
br["vb_login_password"] = password
br["vb_login_md5password"] = hashlib.md5(password.encode()).hexdigest()
br["vb_login_md5password_utf"] = hashlib.md5(password.encode()).hexdigest()
br["cookieuser"] = 1
br["do"] = "login"
br["s"] = ""
br["securitytoken"] = "guest"

response = br.submit()
print(response)

这会生成以下输出:

mechanize._response.httperror_seek_wrapper: HTTP Error refresh: The HTTP server returned a redirect error that would lead to an infinite loop.
The last 30x error message was:
OK

我不知道如何在启用 cookies/javascript 的情况下进行登录。

编辑:

我用 Selenium 得到了解决方案:

driver = webdriver.Firefox()
driver.get("https://12345.com/forum/forum.php")
time.sleep(15)
driver.find_element_by_link_text("Login").click()
time.sleep(5)
driver.find_element_by_class_name("loginbutton").click()
driver.find_element_by_id("vb_login_username").send_keys(username)
driver.find_element_by_id("vb_login_password").send_keys(password)
driver.find_element_by_class_name("button").click()

最佳答案

抱歉,忘记将其标记为已回答。

这是代码:

driver = webdriver.Firefox()
driver.get("https://12345.com/forum/forum.php")
time.sleep(15)
driver.find_element_by_link_text("Login").click()
time.sleep(5)
driver.find_element_by_class_name("loginbutton").click()
driver.find_element_by_id("vb_login_username").send_keys(username)
driver.find_element_by_id("vb_login_password").send_keys(password)
driver.find_element_by_class_name("button").click()

关于python - 使用 Python 执行 vBulletin-Forum 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59589986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com