我尝试使用 python pycurl 创建用于登录 joomla 网站的小脚本, 我写了这段代码:
import sys, re
import pycurl
import cStringIO
import time
import urllib
def LoginJoomla(url):
buf = cStringIO.StringIO()
c = pycurl.Curl()
c.setopt(c.URL, url)
post_params = [('usrname','admin'),('passwd','1234567789'),('submit','Login')]
resp_data = urllib.urlencode(post_params)
c.setopt(c.POSTFIELDS, resp_data)
c.setopt(pycurl.POST, 1)
c.setopt(c.WRITEFUNCTION, buf.write)
c.perform()
html = buf.getvalue()
buf.close()
print html
LoginJoomla("http://www.domain.com/administrator/index.php?option=com_user&view=login")
Bat 不起作用,给我正常的登录网页, 请任何人都可以告诉我哪里错了。
最佳答案
首先阅读但是!
您需要正确获取 URL 参数(我认为您的 URL 不好):
发布到 http://www.example.com/administrator/
具有以下参数:
- 选项=com_login
- 任务=登录
- username=YOURUSER(不是您的 usrname!)
- 密码
但是根据我对 Joomla 的了解!身份验证,你不能这样做,因为 Joomla!从网络浏览器将发送一个 token ,以确保表单是从浏览器发布的。
如果不是从浏览器发布的,则会出现类似“最近的请求被拒绝,因为它包含无效的安全 token ”的错误。请刷新页面并重试。'
我知道可以远程登录 Joomla!,请继续搜索。您可能需要一个自定义身份验证插件。
关于python - pycurl登录joomla网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15439760/