2017-09-25 92 views
0

我想從網站自動讀取數據,首先我需要填寫一些字段,提交表單,然後讀取出現的數據。我是新手,但我寫了一個代碼,顯然不工作,結果是HTTP錯誤500.我在這裏錯過了什麼?或者我如何解決這個問題?使用Python自動使用POST請求讀取網站數據

此外,我很高興使用BS4做到這一點,因爲我需要建立在此代碼上。

網站http://www.mlindex.ml.com/GISPublic/bin/SnapShot.asp

輸入所需:指數北京時間= H0A0,基本貨幣= LOC,日期= 2017年9月22日

我檢查的源代碼,並通過js的形式去提交POST請求並相應地創建代碼和負載:

import requests 

post_data = {'hdnDate':'1/1/2016', 'hdnAction':'SS', 'hdnSelCurr':'0,LOC', 'hdnCurrDesc':'USD', 'hdnSelTitle':'Hedged', 'txtSSCUSIP':'H0A0'} 

# POST some form-encoded data: 
post_response = requests.post(url='http://www.mlindex.ml.com/GISPublic/bin/Snapshot.asp', data=post_data) 
print post_response 

回答

1

您從有效負載d中缺少'cboSnapCurr': 0, 'cboSSHedge' : 1 ata,因爲處理請求的服務器期待這些值。

post_data = { 'hdnDate': '2016年1月1日', 'hdnAction': 'SS', 'hdnSelCurr': '0,LOC', 'hdnCurrDesc': 'USD', 'hdnSelTitle' :'Hedged','txtSSCUSIP':'H0A0','cboSnapCurr':0,'cboSSHedge':1}

+0

謝謝,這給了我認爲意味着「確定」的HTTP響應200。如何獲得實際的HTML響應,以便我可以讀取from的輸出文本? – dsauce

+0

@dsauce'post_response.text' – Zroq

+0

再次感謝!我可以在幾分鐘內將答案標記爲已接受。同時,你能告訴我如何才能得到解析的文本,而不是整個HTML? – dsauce