我熟悉 Linux 中的 curl
命令。但是,我想知道是否有一种方法可以访问一个 URL,该 URL 在访问时要求用户交互/允许继续前进,例如,无论用户是否同意,都要求许可协议(protocol)。
有没有一种方法可以跳过此权限检查或在 curl
命令中传递“我同意”类型的参数,从而将我带到实际的网站数据?
编辑 1:有关用户交互/许可如何显示在网站上的更多信息:
当使用浏览器访问该网址时,网页会要求用户确认是否同意条款和许可条件,并提供“我同意”和“我不同意”两个选项。如果用户点击“我同意”,他将转到实际网页。
我想知道是否可以使用 curl
或等价物在 shell 脚本中通过命令行完成同样的操作?
编辑 2:
在使用浏览器(我用的是firefox)访问该URL时,该URL仅在第一次请求用户权限。下次当我访问该 URL 时,它会跳过这个并继续访问主站点。我估计这次 session 的 cookie 由浏览器保存并在下次使用。有了这个理解,我尝试生成 cookie 文件并通过 curl
以下列方式使用它:
生成cookie:
curl --cookie-jar cookies.txt http://url
使用 cookie:
curl --cookie cookies.txt http://url
但是我没能成功。我追踪到firefox保存的cookies的位置,用同样的方法尝试使用,但又失败了。我想我已经接近了,但我无法向前迈出任何一步。
最佳答案
使用 Géza Török 提供的信息和 wick以上和我自己的理解我能够实现这一目标。我用Firefox浏览器访问了这个URL,然后找到了存储在磁盘上的cookies。在阅读并理解了 cookie 的内容和格式后,我创建了自己的 cookie 文本文件并带有适当的响应,并按以下方式将其传递给 curl
命令以继续访问主网站:
curl --cookie cookies.txt http://url
感谢您的帮助!
关于linux - 如何使用 curl 从需要许可的网站获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26336995/