【问题标题】:How to retrieve response by using POST in R如何在 R 中使用 POST 检索响应
【发布时间】:2019-11-01 08:03:50
【问题描述】:

如果您访问https://www.aucklandcouncil.govt.nz/property-rates-valuations/pages/find-property-rates-valuation.aspx,您将看到搜索框。

我希望输入“905/8 Ronayne St”,输出“12343197398”。

我正在使用 R 并尝试过这样但没有用..

post <- POST("https://www.aucklandcouncil.govt.nz/_vti_bin/ACWeb/ACservices.svc/GetMatchingPropertyAddresses", 
             body = list('ResultCount' = "10", 'SearchText' = "905/8 Ronayne St", 'RateKeyRequired' = "false"))

content(post, "text")

你能帮帮我吗?那将不胜感激:)

【问题讨论】:

  • 即使更改 SearchText,POST 调用也会返回 400。 POST 调用中的某些内容违反了请求参数,并且在没有查看任何文档的情况下很难确定问题所在。

标签: r api post web-scraping httr


【解决方案1】:

由于发送方式,只需要在R中提供正确的标题。

R:

library(httr)

headers = c('Content-Type' = 'application/json; charset=UTF-8')
data = '{"ResultCount":"10","SearchText":"905/8 Ronayne St","RateKeyRequired":"false"}'
r <- httr::POST(url = 'https://www.aucklandcouncil.govt.nz/_vti_bin/ACWeb/ACservices.svc/GetMatchingPropertyAddresses', httr::add_headers(.headers=headers), body = data)

print(content(r)[[1]]$ACRateAccountKey)

派:

import requests

data = {"ResultCount":"10","SearchText":"905/8 Ronayne St","RateKeyRequired":"false"}    
r = requests.post('https://www.aucklandcouncil.govt.nz/_vti_bin/ACWeb/ACservices.svc/GetMatchingPropertyAddresses', json=data).json()
print(r[0]['ACRateAccountKey'])

【讨论】:

  • 再次感谢 QHarr!非常感谢 :) 当我在 R 中使用 POST 函数时,我总是需要添加标题吗?另外,为什么我只需要为标题分配“Content-Type”? (不是“缓存控制”、“内容编码”等?)
  • 这是关于服务器已配置的预期内容。此外,在这种情况下,特别是关于您如何发送服务器需要注意的主体以便正确处理。
  • 嗨,QHarr,我再次需要你的帮助。 stackoverflow.com/questions/58970398/… 。如果您能同时使用 R 和 Py 给出答案,将不胜感激 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-17
  • 2023-01-26
  • 2011-04-24
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
相关资源
最近更新 更多