Использование curl для получения и отправки файлов cookie, но не получение ожидаемого ответа - PullRequest
2 голосов
/ 06 января 2012

Смежный вопрос: Установить сессию для очистки страницы

В качестве личного проекта я пытаюсь очистить каталог курсов моего университета, чтобы предоставить его в качестве RESTful API.

URL1: https://duapp3.drexel.edu/webtms_du/

URL2: https://duapp3.drexel.edu/webtms_du/Colleges.asp?Term=201125&univ=DREX

Переход к URL1 устанавливает cookie, который необходим для URL2. Я успешно получаю и отправляю cookie следующим образом:

curl -c recd url1<br> curl -v -b recd url2

Однако ответ, который я получаю, отличается от того, который я вижу в своем браузере. По сути, мой браузер показывает мне список специальностей, в то время как curl возвращает страницу, на которой вместо списка специальностей отображается

.

<FONT COLOR=red size=5> The lists of subjects are not available online for the selected term at this time.</FONT><FONT COLOR=red size=5> Please check back again later.</FONT>

Я подумал, что, возможно, они проверяют user-agent, поэтому я тоже попробовал:

curl -b recdcookies --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" https://duapp3.drexel.edu/webtms_du/Colleges.asp?Term=201125&univ=DREX

Но тот же неожиданный ответ.

Что является причиной различных выводов между браузером и curl? Насколько показывает curl -v, он устанавливает только один файл cookie. Это потому, что они https страницы, и мне нужно добавить еще один аргумент в curl?

1 Ответ

3 голосов
/ 06 января 2012

При использовании curl в командной строке вы должны заключить URL в кавычки, если он содержит амперсанд (&), поскольку он имеет особое значение в системах Unix.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...