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)
使用此代码我应该能够登录我的 wordpress,但是不起作用。使用网络代理,我发现当点击登录按钮时,我的浏览器会向网络服务器发送一个 session cookie。使用 Python,我不知道如何完成该任务,我的假设是:我需要找到一种在发送发布请求(登录表单)时发送 cookie 的方法。
最佳答案
你的代码没问题,但是你应该将post数据提交到/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)
如果它仍然不起作用,请尝试在 header 中使用“Referer”和“User-Agent”
关于python - 使用请求登录 Wordpress - Python3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43562550/