簡體   English   中英

如何使用 requests.post python 模塊登錄網站

[英]How to login to a website using requests.post python module

http://order.uniteduk.co.uk/index.php/login 這是我想發送登錄詳細信息並登錄以提取其他功能的網站。 有人可以使用 (Post) 請求方法幫助我做到這一點。 我不想使用硒這是我嘗試過的

LOGIN = 'http://order.uniteduk.co.uk/index.php/login'
PROTECTED_PAGE = 'http://order.uniteduk.co.uk/index.php/home'
payload = {
'username': 'username',
'password': 'pwd'
}
import requests

s = requests.session()

response = s.post(LOGIN, data=payload)
print(response.text)
stuff = s.get(PROTECTED_PAGE)
print(stuff.text)

這就是我得到的回報

不能接受的!

不能接受的!

在此服務器上找不到所請求資源的適當表示。 此錯誤是由 Mod_Security 生成的。

nonce登錄請求中出於安全目的使用nonce 您可以在 loin 頁面上找到nonce ,並使用用戶名和密碼將nonce發送到payload 在您的請求中添加headers

import requests
from bs4 import BeautifulSoup

login_url = 'http://order.uniteduk.co.uk/index.php/login'
protected_page_url = 'http://order.uniteduk.co.uk/index.php/home'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.5', 'Accept-Encoding': 'gzip, deflate'
}

# Create Session.
s = requests.session()

# Get nonce from Login page.
response = s.get(login_url, headers=headers)
soup = BeautifulSoup(response.text, 'lxml')
nonce = soup.find('input', {'id': 'woocommerce-login-nonce'}).get('value')

# Add Host, Origin and Referer into headers.
headers['Host'] = 'order.uniteduk.co.uk'
headers['Origin'] = 'http://order.uniteduk.co.uk'
headers['Referer'] = 'http://order.uniteduk.co.uk/index.php/login'

# Add nonce in payload.
payload = {
    "username":"YourUsername",
    "password":"YourPassword",
    "woocommerce-login-nonce":nonce,
    "_wp_http_referer":"/furniture/my-account/",
    "login":"Login"}

# Login Request.
response = s.post(login_url, data=payload, headers=headers)
print(response.text)

# Login Protected Page Request.
stuff = s.get(protected_page_url, headers=headers)
print(stuff.text)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM