带请求库的Python POST请求

时间:2018-08-19 16:34:08

标签: python post web-scraping python-requests

我正在尝试通过提交表单(“计算资本支出”按钮)从https://www.desaldata.com/cost_estimator抓取一些数据。

要获取有关发布请求的信息,当我在浏览器中手动提交表单时,我使用了Chrome的开发者工具(网络标签)来获取信息。

Request URL: https://www.desaldata.com/cost_estimator.json
Cache-Control: max-age=0, private, must-revalidate
Content-Type: application/json; charset=utf-8

以下是表格数据

utf8: ✓
[technology]: swro
capacity: 200000
[seawater]: 0
[seawater_min_temp]: 0
[seawater_max_temp]: 0
[med_or_msf_pretreatment]: 0
[pretreatment]: 0
[second_pass]: 0
[remineralization]: 0
[intake_outfall]: 0
[permitting]: 0
[country_factor]: 
annual_production: 69,350,000
utilisation_rate: 95
energy_consumption: 3.5
energy_price: 0.08
[labour_factor]: 1
interest_rate: 6
equity_yield: 12
loan_repayment_timescale: 20
debt_equity_split: 75
commit: Calculate Capex
cost_estimator.json

这是我的代码。

import requests

headers = {'content-type': 'application/json'}
request_url = "https://www.desaldata.com/cost_estimator.json"
data = {'[technology]': 'swro', 'capacity': 200000, '[seawater]': 0, '[seawater_min_temp]': 0, '[seawater_max_temp]': 0,'[med_or_msf_pretreatment]': 0, '[pretreatment]': 0, '[second_pass]': 0, '[remineralization]': 0, '[intake_outfall]': 0, '[permitting]': 0, 'annual_production': 69350000, 'utilisation_rate': 95, 'energy_consumption': 3.5, 'energy_price': 0.08, '[labour_factor]': 1, 'interest_rate': 6, 'equity_yield': 12, 'loan_repayment_timescale': 20, 'debt_equity_split': 75, 'commit': 'Calculate Capex'}

r = requests.post(request_url, headers = headers, data = data)

我得到400条回复。我不确定如何发送utf8:✓和[country_factor]:没有值。我应该如何修正我的代码?

0 个答案:

没有答案