卷曲读取动态值

时间:2018-10-17 07:11:13

标签: linux bash curl

我正在测试curl,这是该语言的新手。

让我解释一下我在做什么。

http://somewebsite.com/click?param1=10&param2=523”这是我在浏览器中使用Inspect Element击中的URL,并且得到了以下curl bash值-

curl 'http://somewebsite.com/click?param1=10&param2=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值。

任何帮助都会很棒。谢谢。

1 个答案:

答案 0 :(得分:0)

由于 pdval 位于cookie中,因此您可以使用-b-c选项进行与cookie相关的任务。

-c,--cookie-jar <文件名>

  

(HTTP)指定要卷曲后将所有cookie写入哪个文件   完成的操作。 Curl从其内存中写入所有cookie   在操作结束时将cookie存储到给定文件。如果不   Cookies是已知的,不会写入任何数据。该文件将被写入   使用Netscape Cookie文件格式。如果将文件名设置为   单破折号“-”,cookie将被写入标准输出。

-b,--cookie

  

(HTTP)将数据传递到Cookie标头中的HTTP服务器。它是   可能是先前从服务器接收到的数据   “设置Cookie:”行。数据格式应为“ NAME1 = VALUE1;   NAME2 = VALUE2”。

     

如果参数中未使用'='符号,则将其视为   从中读取以前存储的cookie的文件名。

因此,如果您设置了-c选项,那么curl将自动将cookie存储在文件中。而且您必须使用-b来告诉curl从该文件中获取Cookie。

因此,您的命令应如下所示:

curl 'http://somewebsite.com/click?param1=10&param2=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