python - api端点上的post请求不返回数据
问题描述
我目前正在尝试使用 API 和网站的标题,而不是创建网络抓取工具。我一直在尝试使用 Chrome 开发工具检查网站,并network
在发出 POST 请求时捕获选项卡下的信息。
到目前为止,我没有运气,只<Response [200]>
从端点获取,但没有返回数据。
请告知我做错了什么。
下面是我的 Python 代码:
import requests
def get_data_from_api():
search_keyword = 'money'
api_endpoint = 'https://45bwzj1sgc-dsn.algolia.net/1/indexes/*/queries?x-algolia-agent=Algolia%20for%20JavaScript%20(4.2.0)%3B%20Browser'
payload = {
'x-xxxx-application-id': '45BWZJ1SGC',
'x-xxx-api-key': 'MTRkMGNlOGFhMWQ4YThmZDA0YmViNGY2M2ViYzBlMGMwNTBmMjllNjJmMDA4YmY1YzY3YzI2NzRmMzlhYThkM3RhZ0ZpbHRlcnM9JTVCJTVCJTIyc3VzX3B1YmxpYyUyMiUyQyUyMnN1c19jaGFubmVsX2FsbCUyMiUyQyUyMnN1c19jaGFubmVsX2ZlYXR1cmVkJTIyJTJDJTIyc3VzX2NoYW5uZWxfd2Vla2x5LW5ld3NsZXR0ZXIlMjIlMkMlMjJzdXNfY2hhbm5lbF9hbWElMjIlMkMlMjJzdXNfY2hhbm5lbF9saXZlc3RyZWFtJTIyJTJDJTIyc3VzX2NoYW5uZWxfc2hvdy1zdXMlMjIlMkMlMjJzdXNfY2hhbm5lbF9lbmdpbmVlcmluZyUyMiU1RCU1RCZhbmFseXRpY3NUYWdzPSU1QiUyMnN1cyUyMiU1RA=='
}
r = requests.post(api_endpoint, headers= payload, data=str(''' {"requests":[{"indexName":"OmniSearch_sus_production","query":"'''+search_keyword+'''","params":"attributesToSnippet=%5B%22body%3A80%22%2C%22searchable_comments%3A30%22%5D&page=0&hitsPerPage=10&filters=&facetFilters=%5B%5B%5D%5D&facets=%5B%22channel%22%5D&sortFacetValuesBy=count&clickAnalytics=true"}]} '''))
print(r)
if __name__ == "__main__":
get_data_from_api()
解决方案
你可以试试:
print(r.json())
推荐阅读
- docker - 摆脱 Docker 的以下错误: GET /v1.38/nodes 的处理程序返回错误:此节点不是群管理器
- python - 如何在 python 脚本上运行 logstash docker 容器和 2 个另一个 python 脚本
- apache-kafka - Kafka Broker 健康指标
- jquery - Jquery - 将 $(this) 传递给没有 var 的回调函数
- javascript - 将表单输入值传递给另一个组件 React
- php - 提高查询速度 Ionic/Laravel Post 请求
- javascript - 在多个 div 上渲染多个场景
- linux - 使用 qsub 提交可执行文件 + 输入文件以创建多个作业
- java - 无法在 com.google.gms.googleservices.GoogleServicesPlugin 的空对象上调用方法 get()
- android - 向选定用户推送通知