curl читать динамические значения - PullRequest
0 голосов
/ 17 октября 2018

Я тестирую curl и очень плохо знаком с этим языком.

позвольте мне объяснить, что я делаю.

"http://somewebsite.com/click?param1=10&param2=523" это URL, который я нажимаю в браузере и использую Inspect Element, и я получил следующее значение 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

Теперь здесь каждый раз, когда я нажимаю этот URL в браузере, значение параметра "pdval" меняется.

Есть ли возможность прочитать значения -H вbash-скрипт в Linux с использованием curl.

Любая помощь будет отличной. Спасибо.

1 Ответ

0 голосов
/ 17 октября 2018

Поскольку pdval находится в файле cookie, вы можете использовать опции -b и -c для задачи, связанной с файлами cookie.

-c, --cookie-jar <имя_файла>

(HTTP) Укажите, в какой файл требуется свернуть все файлы cookie после завершения операции.Curl записывает все файлы cookie из своего хранилища в памяти в указанный файл в конце операций.Если куки не известны, данные не будут записаны.Файл будет записан в формате файлов cookie Netscape.Если для имени файла задать одну черту, «-», файлы cookie будут записаны в стандартный вывод.

-b, --cookie

(HTTP) Передайте данные на HTTP-сервер в заголовке Cookie.Предположительно это данные, ранее полученные от сервера в строке «Set-Cookie:».Данные должны быть в формате «ИМЯ1 = ЗНАЧЕНИЕ1; ИМЯ2 = ЗНАЧЕНИЕ2».

Если в аргументе не используется символ «=», вместо этого он рассматривается как имя файла для чтения ранее сохраненного файла cookie.

Таким образом, если вы установите опцию -c , то curl автоматически сохранит cookie в файл.И вы должны использовать -b , чтобы сообщить curl, что берут куки из этого файла.

Таким образом, ваша команда должна выглядеть следующим образом:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...