使用请求登录Wordpress-Python3

Bob*_*ert 4 python wordpress session python-requests

import requests

with requests.Session() as s:
    headers1 = {'Cookie':'wordpress_test_cookie=WP Cookie check'}
    datas={'log':'admin','pwd':'admin','wp-submit':'Log In','redirect_to':'/wordpress/wp-admin/','testcookie':'1'}
    s.post("http://ip/wordpress/wp-admin",headers=headers1,data=datas)
    re = s.get("http://ip/wordpress/wp-admin").text
    print (re)
Run Code Online (Sandbox Code Playgroud)

使用此代码,我应该能够登录我的wordpress,但不起作用。通过使用Web代理,我发现单击登录按钮时,浏览器将会话cookie发送到Web服务器。使用Python,我不知道该怎么做,我的假设是:我需要找到一种在发送发布请求(登录表单)时发送cookie的方法。

t.m*_*dam 6

您的代码可以,但是您应该将发布数据提交到/wp-login.php,而不是/wp-admin/

wp_login = 'http://ip/wordpress/wp-login.php'
wp_admin = 'http://ip/wordpress/wp-admin/'
username = 'admin'
password = 'admin'

with requests.Session() as s:
    headers1 = { 'Cookie':'wordpress_test_cookie=WP Cookie check' }
    datas={ 
        'log':username, 'pwd':password, 'wp-submit':'Log In', 
        'redirect_to':wp_admin, 'testcookie':'1'  
    }
    s.post(wp_login, headers=headers1, data=datas)
    resp = s.get(wp_admin)
    print(resp.text)
Run Code Online (Sandbox Code Playgroud)

如果仍然无法使用,请尝试在标题中使用“ Referer”和“ User-Agent”