由于亚马逊“管理你的 Kindle”的网络界面极其缓慢,我试图弄清楚如何构建一个应用程序来连接到为管理页面提供信息的未记录服务。我现在已经确定了要使用哪些 URL 和参数来检索执行 CRUD 操作所需的 JSON 数据,但我无法成功地使用 CURL 向任何服务发送数据。
身份验证似乎存在问题,但我正在发送我能找到的所有相关标头和 cookie。还是得到一个
HTTP/1.1 302 MovedTemporarily
Location: https://www.amazon.com/ap/signin?_encoding=UTF8&accountStatusPolicy=P1&openid.assoc_handle=usflex&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.ns.pape=http%3A%2F%2Fspecs.openid.net%2Fextensions%2Fpape%2F1.0&openid.pape.max_auth_age=900&openid.return_to=https%3A%2F%2Fwww.amazon.com%2Fgp%2Fdigital%2Ffiona%2Fmanage%2Ffeatures%2Forder-history%2Fajax%2FqueryPdocs.html%3Fie%3DUTF8%26contentType%3DPersonal%2520Documents%26count%3D15%26offset%3D0
发送此请求后,应该列出所有个人文件。这些 cookie 是使用 Chrome 的 Web 开发人员工具复制的。
> POST /gp/digital/fiona/manage/features/order-history/ajax/queryPdocs.html HTTP/1.1
> User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5
> Host: www.amazon.com
> Accept: */*
> Cookie: session-token=8tAmbclc1/ZjtWU8o5VXyU5H8s0/Yiy346W1/Nx4Sz2BzTUWUR9lkwDABzzgRW1lwZUqcu8MqhGzbby2Xg9RA8Y0cwpLRDk5sf6eXUwNQBvZAcgEXsHG8Bj+24q2C1MZ9v5hFrzBNr6pDP+9CYXrMl2WaEVzmvd/sBO69jk5o3mK3PJf1leY6YhLAL3W8dVj89O+ebIoaPvLHP7naDpImbqaa5bwGS4ki+AzJDLAHs5UMwQkiuXoUCnukz1+WqCr0rHhKoPkI17WGm6MrRDs9/PC2ll7+qDU13; session-id=184-5755217-1234567; session-id-time=2082787201l
> Content-Length: 48
> Content-Type: application/x-www-form-urlencoded
(是的,我在在线发布此内容之前更改了我的会话令牌和会话 ID :p )
我在 CLI 上使用以下调用并将 cookie 存储在 cookie3.txt 中
curl -v --cookie cookie3.txt --data 'offset=0&count=15&contentType=Personal+Documents' 'https://www.amazon.com/gp/digital/fiona/manage/features/order-history/ajax/queryPdocs.html'
知道我在这里缺少什么才能使其正常工作吗?
看来亚马逊在实施方面做得最好通过默默无闻实现安全;如果您的用户代理不是可识别的浏览器,例如 Firefox、Chrome 或 IE,您将被拒绝访问。为了通过用户代理获取请求,需要伪造用户代理。
我最终放弃了 cURL,转而使用 Python 和 Requests 库。进入 FIONA 所需的所有步骤可以在GitHub 上的代码.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)