有这个网站:yamli.com它提供了一种将拉丁语单词转录为阿拉伯语单词的形式。
我检查了源代码,发现它使用的是HTML形式:
<form id="search_form" action="http://api.yamli.com/search.ashx" method="get" >
我感兴趣的输入是:
<input id="search_input" name="q" type="text" dir="rtl" size="60" maxlength="2048" autocomplete="off" tabindex="1"/>
所以就是q。
我的卷曲请求是:curl -X POST -d "q=test" http://yamli.com/search.ashx -o /tmp/response
但结果似乎是一个 3xx 代码,告诉我页面已移动(...如果将 curl 与重定向一起使用,它将重定向到主网页):
<head><title>Document Moved</title></head>
<body><h1>Object Moved</h1>This document may be found <a HREF="http://www.yamli.com/">here</a></body>
我在这里缺少什么吗?
答案1
这不是问题curl
。在您的表单中,您已经method="get"
并且因为您使用 POST,所以您实际上收到了消息:
405 - 不允许用于访问此页面的 HTTP 动词。由于尝试访问时使用了无效方法(HTTP 动词),因此无法显示您正在查找的页面。
只需根据需要使用 GET 即可:
curl http://api.yamli.com/search.ashx?q=test
您可能还必须提供网站发送的有效 cookie。