我正在测试curl,这是该语言的新手。
让我解释一下我在做什么。
“ http://somewebsite.com/click?param1=10¶m2=523”这是我在浏览器中使用Inspect Element击中的URL,并且得到了以下curl bash值-
curl 'http://somewebsite.com/click?param1=10¶m2=523' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.9' -H 'Cookie: pdval=9bc5d1fa982ff4c1e1f3d224' --compressed
现在,每次我在浏览器中点击该网址时,参数“ pdval”的值都会改变。
是否可以使用curl在Linux的bash脚本中读取-H值。
任何帮助都会很棒。谢谢。
答案 0 :(得分:0)
由于 pdval 位于cookie中,因此您可以使用-b和-c选项进行与cookie相关的任务。
(HTTP)指定要卷曲后将所有cookie写入哪个文件 完成的操作。 Curl从其内存中写入所有cookie 在操作结束时将cookie存储到给定文件。如果不 Cookies是已知的,不会写入任何数据。该文件将被写入 使用Netscape Cookie文件格式。如果将文件名设置为 单破折号“-”,cookie将被写入标准输出。
(HTTP)将数据传递到Cookie标头中的HTTP服务器。它是 可能是先前从服务器接收到的数据 “设置Cookie:”行。数据格式应为“ NAME1 = VALUE1; NAME2 = VALUE2”。
如果参数中未使用'='符号,则将其视为 从中读取以前存储的cookie的文件名。
因此,如果您设置了-c选项,那么curl将自动将cookie存储在文件中。而且您必须使用-b来告诉curl从该文件中获取Cookie。
因此,您的命令应如下所示:
curl 'http://somewebsite.com/click?param1=10¶m2=523' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.9' -b /tmp/somewebsite.cookie -c /tmp/somewebsite.cookie --compressed