我熟悉Linux中的curl
命令。但是,我想知道是否有办法访问URL,当访问该URL时要求用户交互/许可继续进行,例如,询问用户是否同意的许可协议。
有没有办法可以跳过此权限检查或通过"我同意" curl
命令中哪种参数将我带到实际的网站数据?
修改1 :有关用户互动/权限如何在网站上展示的更多信息:
当使用浏览器访问URL时,网页要求用户确认他是否同意条款和许可条件,并提供两个选项"我同意"和"我不同意"。如果用户点击"我同意"他进入实际的网页。
我想知道是否可以使用curl
或等效的shell脚本中的命令行完成相同的操作?
编辑2:
当使用浏览器(我使用firefox)访问URL时,URL仅首次请求用户权限。下次当我访问URL时,它只是跳过这个并进入主站点。我估计此会话的cookie由浏览器保存并在下次使用时使用。有了这样的理解,我尝试生成cookie文件并通过curl
以下列方式使用它:
生成cookie:
curl --cookie-jar cookies.txt http://url
使用cookie:
curl --cookie cookies.txt http://url
但我无法成功。我找出了firefox保存的cookie的位置,并尝试以相同的方式使用它,但又失败了。我想我很接近,但我无法向前迈出一步。
答案 0 :(得分:3)
使用上面Géza Török和wick提供的信息以及我自己的理解,我能够实现这一目标。我使用Firefox浏览器访问URL,然后找到存储在磁盘上的cookie。在阅读并理解了cookie的内容和格式后,我创建了自己的cookie文本文件并给出了适当的响应,并按照以下方式将其传递给curl
命令,以进入主网站:
curl --cookie cookies.txt http://url
感谢您的帮助!
答案 1 :(得分:0)
正如评论所说,有很多方法可以实现这一点。首先,我会安装firebug(如果使用firefox)或在chrome中按Ctrl + Shift + I来检查有问题的URL后发生了什么。如果有与初始检查相关联的不同对象和主要功能,您将在那里看到它,并决定卷曲是否有帮助。
Curl只是拉取http对象的工具。当你可以在请求头中提供keystring时,它可能取代浏览器交互的唯一情况可能是基本身份验证。对于您描述的情况,http调试器将是开始的地方。