簡體   English   中英

獲取應用程序/ x-www-form-urlencoded所需的密鑰

[英]Obtaining required keys for application/x-www-form-urlencoded

我一直在使用機械化從網站上填寫表格,但是現在這種情況已經改變,某些必填字段似乎已隱藏,無法再使用機械化來訪問-在打印所有可用表格時。 我認為已經對其進行了修改以使用更多當前方法(application / x-www-form-urlencoded),但是我還沒有找到一種方法來更新腳本以繼續以編程方式使用此表單。

從我的閱讀中,我應該能夠直接將dict(鍵/值對)發送到“提交”按鈕,而不是首先填寫表格-如果我寫錯了,請糾正我。 但是我還沒有找到獲取所需密鑰的方法...

如果有人可以將我指向正確的方向或直說我以防萬一,那么我將不勝感激。

您不能在任何情況下都提取服務器期望的所有字段。

發布目標(處理POST的代碼)是一個黑框。 您無法查看服務器運行的代碼。 關於預期的最佳信息就是原始表格告訴您的瀏覽器的內容。 原始格式不僅包含HTML,還包含隨其發送的標頭(例如Cookie)以及瀏覽器運行的任何JavaScript代碼。

在許多情況下,解析為表單發送的HTML就足夠了; 這就是Mechanize(或最近的更現代的框架,如robobrowser )所做的事情 ,再加上一些cookie處理並確保包括典型的標頭(例如引薦來源網址)。 但是,如果任何JavaScript代碼操縱了HTML或攔截了表單提交以添加或刪除數據,則Mechanize或其他Python表單解析器將無法復制該步驟。

然后,您的選擇是:

  • 反向工程Javascript代碼的作用,並將其復制到Python代碼中。 瀏覽器的開發工具可以在這里提供幫助; 例如,觀察網絡選項卡上發布的內容,或使用調試器逐步瀏覽JavaScript代碼以查看其功能。

  • 使用受Python控制的實際瀏覽器。 硒可以為您做到這一點; 它可以驅動桌面瀏覽器(Chrome,Firefox等),也可以用於驅動無頭瀏覽器實現,例如PhantomJS。 這在資源上比較繁重,但是實際上將運行JavaScript代碼,並讓您以各種方式像瀏覽器一樣發布表單。

暫無
暫無

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

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