![](/img/trans.png)
[英]Grab data from password protected ASP website using Python's requests
[英]Getting data from password protected website via requests
我的業余時間是自由編輯,但是最近我工作的公司使他們的通知系統更加糟糕,這使我錯失了很多機會。 我決定嘗試創建一個簡單的python腳本,每分鍾左右拉動網站,檢查特定字段中的更改,然后將電子郵件發送到專用帳戶以通知我。 我從未使用過python,但是我陷入了困境,發現最好的選擇可能是requests
庫。 但是,由於我的所有請求都只會導致登錄頁面,因此我很難獲得正確的身份驗證頁面。
該網站的工作方式如下(如果將其標記為垃圾郵件,我將丟失TLD):
我嘗試了以下方法:
requests.get('https://whiteboard.cactusglobal.com/dashboard', auth=('user','pass'))
and are replaced with the appropriate values, but no dice. 其中和被替換為適當的值,但沒有骰子。 我也嘗試過
requests.get('https://whiteboard.cactusglobal.com/dashboard', auth=HTTPDigestAuth('user','pass'))
這沒有幫助,並且
payload = {'user':'XXXXXXXX', 'pass':'XXXXXXX'}
requests.post('https://whiteboard.cactusglobal.com/dashboard', data=payload})
仍然沒有用。 如前所述,所有請求都給出403並返回登錄頁面。
我已經使用Burp從瀏覽器中捕獲了帶有我的登錄詳細信息的POST
請求,希望它可以使您對問題有所了解,但是我對requests
工作原理不了解。 這是請求(已刪除Cookie):
POST /dashboard?destination=dashboard HTTP/1.1
Host: whiteboard.cactusglobal.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://whiteboard.cactusglobal.com/
Content-Type: application/x-www-form-urlencoded
Content-Length: 125
Connection: close
Upgrade-Insecure-Requests: 1
name=XXXXXXXX&pass=XXXXXXXXXX&form_build_id=XXXXXXXXXX&form_id=XXXXXXXXXXXXX
很抱歉,如果我對它的理解更好,可以通過Google輕松地尋求幫助,但是由於我缺乏python的知識並且對HTTP請求的了解很少,因此我有太多的未知因素無法有效地解決問題。 謝謝您的幫助。
對我來說,它與python
或HTTP請求無關。 網站whiteboard.cactusglobal
不是API,而是網站。 這並不意味着您只能以編程方式訪問其頁面。 借助瀏覽器,它希望有一個真正的用戶與之交互。
所以對我來說,您需要的工具是Selenium 。 或任何用戶測試自動化工具。 這種工具可以讓您模擬一個瀏覽器,該瀏覽器可以訪問網站,重定向到日志頁面,並在相關字段中輸入身份驗證信息,所有這些都在Python內。
由於您的用例是基本的,因此,如果您了解基本的教程,尤其是如何填寫表格,您將很容易找到自己的方式:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.