2017-04-22 126 views
2
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,但不起作用。使用Web代理時,我發現當單擊登錄按鈕時,我的瀏覽器將會話cookie發送到Web服務器。使用Python,我不知道如何完成這個任務,我的假設是:我需要找到一種發送發送請求(登錄表單)時發送cookie的方式。用請求登錄WordPress - Python3

回答

2

你的代碼是好的,但你應該交的數據提交給/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) 

如果仍然無法正常工作的頭

以「引用站點」和「用戶代理」嘗試