[英]Issues posting a form using python
我正在使用urllib和urllib2的組合來發布一些表單數據。
這是我需要提交的表格
<form method="post" action="show_bug.cgi">
<input type="hidden" name="ctype" value="xml">
<input type="hidden" name="id" value="788604">
<input type="hidden" name="id" value="793892">
<input type="hidden" name="id" value="823569">
<input type="hidden" name="id" value="823585">
<input type="hidden" name="id" value="825904">
<input type="hidden" name="id" value="827493">
<input type="hidden" name="excludefield" value="attachmentdata">
<input type="submit" value="XML" id="xml">
</form>
我正在創建形式為[ (name,value), ... ]
的元組列表
由於提交類型元素沒有名稱,因此我不知道如何以及是否使用urllib / urllib2發送該元素。
當我嘗試將此數據發布到show_bug.cgi時,出現HTTP404錯誤。
我對如何發布表單(尤其是提交輸入類型)感到困惑。 到目前為止,我一直認為Submit類型的值和id無關緊要,到目前為止,它似乎對我有用。
這是TamperData捕獲的發布請求
以下請求有效:
from urllib import urlencode
from urllib2 import urlopen
url = 'https://bugzilla.mozilla.org/show_bug.cgi'
data = urlencode([('ctype', 'xml'), ('id', [788604, 793892]),
('excludefield', 'attachmentdata'),
], doseq=True)
response = urlopen(url, data)
print(response.code) # -> 200
xml = response.read()
如果doseq=True
則將('id', [788604, 793892])
編碼為id=788604&id=793892
。
如果不使用doseq
, ('id', 788604), ('id', 793892)
產生相同的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.