这里有一篇文章(http://narenonit.blogspot.in/2011/07/my-youmint-api-to-send-free-sms.html),作者试图很好地告知,就我而言可以猜到。我面临的确切问题是如何研究 HTTP 连接。是否有人可以更清楚地解释该程序。
如何在没有源代码的情况下为 Web 应用程序创建 API?
您可以使用一些工具来查看从浏览器发送到网络应用程序的内容,并推断如何“模拟”这种行为。网络嗅探器在这里是最有用的。例如 Wireshark(尤其是它的Follow Stream功能)。此外,一些浏览器插件也很有用,例如Firebug、TamperData和Poster。
除此之外,这只是复制浏览器所做的事情。基本上,http 通信由 GET 或 POST 请求和回复组成(还有其他请求,您应该查看RFC2616以获取更多详细信息)。因此,通过查看 Wireshark 中的 HTTP 流,您可以推断出什么样的请求被发送到 Web 应用程序,以及它得到什么样的回复。由于 html 表单元素将具有指定的参数和操作 url,因此可以通过研究网页的 html 源来推导出这些信息中的一些(甚至大部分)。
这样做的方法是使用网络抓取技术。如果您可以使用浏览器访问网页/资源,那么使用嗅探器和代理是多余的。在这种情况下,您只需自动化用户在浏览器中执行的操作,并使用Chrome 开发人员工具等工具来检查 HTML 和 AJAX 连接。
如果你想看一看,我已经写了几篇关于这个主题的文章:
- Google Search NoAPI(自动化 Google 搜索)
- Twitter 的自动无浏览器 OAuth 身份验证
- Web Scraping Ajax and Javascript Sites 最后包含大量关于离线/无头浏览器和浏览器模拟(如HTMLUnit)的资源
对于具有一些反抓取技术的应用程序,您可以查看运行您自己的匿名旋转代理
如果有一些未涵盖的特定要求,请随时发表评论,我会在这方面为您提供帮助。
提琴手学会爱上它..
它提供了一个易于使用的界面,用于捕获对预期站点的请求/响应。
基本上你需要:
使用浏览器发出您想要自动化的请求。
使用 Fiddler 捕获这些请求并进行调查。(它是 POST 还是 GET?是否有 CSRF 令牌?哪些变量映射到我提供的输入等......)
从服务器获取响应。
确定包含输出的部分。
然后,您需要编写一个脚本,该脚本接受您想要发送的任何输入,然后以与浏览器相同的方式发出请求。存储输出并拉出您想要的部分。
一旦你成功地弄清楚如何制定请求,你就可以构建一个类来隐藏它如何工作的细节并制作干净的代码。