2012-09-28 90 views
2

我正在嘗試完成一些自動化操作,其中包括在網頁上提交表單。表單的值已經按列表中的每個項目編碼。Web自動化 - 處理.aspx

我已經嘗試了許多不同的模塊與Python,似乎沒有給我一個答案。我沒有權限訪問Visual Basic,而且我以前從未處理過.aspx頁面。 這是表單名稱 我以爲我設置,並準備走的時候,我發現了形式參數: 功能ShowEditForm(ID,參數1,參數2,參數3,param4)安全

去除#actual參數名稱

這是這是主要的頭疼部分:

<INPUT id=__EVENTTARGET type=hidden name=__EVENTTARGET> <INPUT id=__EVENTARGUMENT  type=hidden name=__EVENTARGUMENT> <INPUT id=__VIEWSTATE type=hidden value=/wEPDw... #This  continues for 800+ characters 

我相信這是我的代碼失敗的原因,是我在獵巫嘗試後在Python一個.aspx形式?

謝謝

回答

1

你需要解析/參數化你的文章標題和內容。這可以是非平凡的。

檢出mechanize用於在HTTP級別訪問,並具有一些表單處理方便性。

檢出selenium,用於在Python中驅動真正的瀏覽器。

1

事實上,如果這些隱藏值不存在,服務器端POST請求的處理將不起作用。 ASP.NET使用這些東西來跟蹤多個請求的狀態。反向工程ASP.NET Web Forms HTTP請求不是一件有趣的事情。

您可能需要請求頁面,刮取它提供的隱藏值,並將其包含在POST中。

通過與頁面的手動交互以及捕獲類似於FireBug的請求/響應,您也可以很好地瞭解在客戶端和服務器之間來回發送的值。如果有一些JavaScript發送到響應,並且以服務器預先確定的方式動態修改某些隱藏字段,這也不會讓我感到驚訝,這有助於指示哪個按鈕被按下或哪個控件以某種方式被修改。

+0

「您可能需要請求該頁面,刮取它提供的隱藏值,並將其包含在POST中。」 這就是我想要做的。我想我需要更多地瞭解ASP .NET如何工作,儘管我正在拼命地避免這種情況。 –

1

Asp.net有一個稱爲viewstate(加密頁面狀態設置)的功能,您不能僞造該頁面,並且該頁面可能默認使用哪些功能,並且在提交回自己時會期望在窗體上看到該功能(稱爲回帖)。

如果您控制.aspx代碼,它可能有一個關聯的.cs或.vb文件,並帶有代碼來執行表單處理。您可以更改代碼以從發佈的表單或網址參數中獲取值,而不是原始表單上的控件(或除此之外)。如果該網站已編譯,但您沒有看到任何.vb或.cs文件需要更改,則需要找到該解決方案的原始源文件。

+0

我沒有訪問代碼no。但是我已經解析了第一次讀取給我的html。你是說沒有這些文件這是不可能的? –

+0

如果你有原始文件,這將會容易10倍。由於其他一些評論建議您可以嘗試使用瀏覽器自動提交值或在iframe中打開源頁面,並設置表單控件並使用JavaScript提交。 –