有没有办法通过命令行cURL跟随重定向?


456

我知道在php脚本中:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

将遵循重定向。有没有办法通过命令行cURL跟随重定向?

Answers:



25

我有一个类似的问题。我将解决方案发布在这里,因为我认为这可能会对其中一位评论者有所帮助。

对我来说,障碍是该页面需要登录,然后通过javascript给我一个新的URL。这是我必须要做的:

curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>

请注意,j_username和j_password是我的网站登录表单的字段名称。您将不得不打开网页的源代码,以查看您的用户名字段的“名称”和密码字段的“名称”。之后,我进入了一个带有Java脚本的html文件,其中嵌入了新的URL。解析后,只需重新提交新的URL:

curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>


15

如前所述,要遵循重定向,您可以使用标志-L--location

curl -L http://www.example.com

但是,如果您想限制重定向次数,请添加参数--max-redirs

--max-redirs <num>

设置允许的最大重定向数量。如果-L--location使用,这个选项可以用来防止卷曲由“荒谬”以下的重定向。默认情况下,该限制设置为50个重定向。将此选项设置为-1使其不受限制。如果多次使用此选项,则将使用最后一个。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.