0
我想寫一些python代碼來自動查詢在線醫療計算工具。該的ressource,請訪問: http://www.shef.ac.uk/FRAX/tool.aspx?lang=en使用請求批量查詢在線計算器
我是新來的這種類型的事情,但是從我的研究,我應該能夠使用Python請求包這個理解。 從我我已經確定了表單元素
<form method="post" action="tool.aspx?lang=en" id="form1">
頁面源和元素的檢查,似乎直接對應的字段(如年齡)這個樣子
<input name="ctl00$ContentPlaceHolder1$toolage" type="text" id="ContentPlaceHolder1_toolage" maxlength="5" size="3" onkeypress="numericValidate(event)" style="width:40px;" />
我的測試代碼到目前爲止,看起來是這樣的(唯一的必填字段已經填寫的年齡,性別,體重和身高):
import requests
url="http://www.shef.ac.uk/FRAX/tool.aspx?lang=en"
payload ={'ctl00$ContentPlaceHolder1$toolage':'60',
'ctl00$ContentPlaceHolder1$year':'1954',
'ctl00$ContentPlaceHolder1$month':'01',
'ctl00$ContentPlaceHolder1$day':'01',
'ctl00$ContentPlaceHolder1$sex':'female',
'ctl00$ContentPlaceHolder1$weight':'70',
'ctl00$ContentPlaceHolder1$ht':'165',
'ctl00$ContentPlaceHolder1$facture':'no',
'ctl00$ContentPlaceHolder1facture_hip$':'no',
'ctl00$ContentPlaceHolder1$smoking':'no',
'ctl00$ContentPlaceHolder1$glu':'no',
'ctl00$ContentPlaceHolder1$rhe_art':'no',
'ctl00$ContentPlaceHolder1$sec_ost':'no',
'ctl00$ContentPlaceHolder1$alcohol':'no',
'ctl00$ContentPlaceHolder1$bmd_input':'',
'ctl00$ContentPlaceHolder1$btnCalculate':'Calculate',
}
req = requests.post(url, params=payload)
with open("requests_results.html", "w") as f:
f.write(req.content)
然而,這是行不通的。我沒有收到錯誤消息,但生成的保存的html頁面(我稍後會解析結果)僅包含沒有結果值的初始頁面。除了在我目前的有效載荷領域的形式也含有也許是必要的其他元素,如一些相同的數據類型,如年齡
<input name="ctl00$ContentPlaceHolder1$toolagehidden" type="hidden" id="ContentPlaceHolder1_toolagehidden"
我已經試過有效載荷的不同組合的隱藏要素,但結果是一樣的。任何幫助將不勝感激
好吧我嘗試以urlencoded形式提交當前有效負載,但它沒有區別。編碼應該解決什麼問題? – user1657216