簡體   English   中英

Request.post不返回任何內容

[英]Request.post returns nothing

我有一個非常簡單的腳本,該腳本應該執行登錄網頁的過程:

import requests
from bs4 import BeautifulSoup

headers = {'User-Agent': 'Mozilla/5.0'}
credentials = {'user': 'user',
               'pass': 'pass'}
session = requests.Session()
req = session.get('https://myurl.com', verify=False)
html = BeautifulSoup(req.text)

login_form = html.find('form', {'name': 'loginForm'})
login_url = login_form['action']

# at this moment login_url has this form: https://myurl.com/webclient;jsessionid=AC7F87C5D38C0B2EABBF6D76379BB75B?pageid=816
req2 = session.post(login_url, data=credentials, headers=headers, verify=False)
print 'req2:', req2.text    # prints nothing

為什么req2.text(盡管req2.status_code返回200)為空? 當我在html源中檢查表單的 動作屬性時,我看到沒有jsessionid的 URL。 為什么? 我應該將我的憑據在request.post中發送到哪個地址?

PS。 pageid是動態生成的,因此這就是為什么我使用BeautifulSoup從html表單獲取此url的原因。

我發現了問題,這確實很簡單-在這種情況下,提交按鈕值是強制性的。 因此,我要做的就是將按鈕值添加到憑據字典中。

嘗試編碼值:

credentials = {
      'user'.encode("utf-8"): 'user'.encode("utf-8"),
      'pass'.encode("utf-8"): 'pass'.encode("utf-8")
}

我相信你會寫得更好。 我有同樣的問題,那就是解決方案。

暫無
暫無

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

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