使用Python自动使用POST请求读取网站数据
问题描述:
我想从网站自动读取数据,首先我需要填写一些字段,提交表单,然后读取出现的数据。我是新手,但我写了一个代码,显然不工作,结果是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
答
您从有效负载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}
谢谢,这给了我认为意味着“确定”的HTTP响应200。如何获得实际的HTML响应,以便我可以读取from的输出文本? – dsauce
@dsauce'post_response.text' – Zroq
再次感谢!我可以在几分钟内将答案标记为已接受。同时,你能告诉我如何才能得到解析的文本,而不是整个HTML? – dsauce