CURL, похоже, ведет себя неправильно

Я пытаюсь выполнить следующую команду в моей оболочке:

curl -b usptoCookies -L -d "patentNum=6836866&applicationNum=10007391&maintFeeAction=Get+Bibliographic+Data&maintFeeYear=04" https://ramps.uspto.gov/eram/getMaintFeesInfo.do;jsessionid=0000Nmdd1Q_YsDF90HKmb9EIIgq:11g0uehq7

Довольно просто. Он пытается опубликовать несколько переменных в форме. Вы можете увидеть веб-страницу здесь: https://ramps.uspto.gov/eram/

Попробуйте ввести номер патента и номер заявки следующим образом: 6836866 и 10007391. Затем нажмите кнопку «Получить библиографические данные».

Веб-страница возвращает вещи («аккуратно» отформатированную таблицу), но вызов curl, похоже, испытывает «некоторую» проблему. Я в недоумении. Я использовал firebug в браузере, чтобы подтвердить, что три приведенные выше переменные - это все, что требуется для заполнения формы сообщения.

Это не проблема с https, потому что я получаю ответ обратно. Мне нужна помощь.

Кто-нибудь?

Шахиб Рошан

14.12.2008 01:34:34
Вы устали ставить URL в кавычки?
some 14.12.2008 01:37:53
2 ОТВЕТА

В этой форме есть множество других скрытых полей, включая «подпись». Который кажется уникальной строкой каждый раз, когда вы запрашиваете страницу. Это, вероятно, функция, используемая для гарантии того, что вы не удаляете всю информацию из их базы данных.

Когда я очистил поле скрытой подписи, он вернул ошибку. Если вы хотите написать программу для извлечения этой информации, вам, вероятно, придется сделать что-то более сложное и сначала извлечь страницу с «подписью», чтобы вы могли опубликовать это значение на сайте, чтобы получить правильный ответ.

2
14.12.2008 01:41:21
Верно. Также, как и предполагали некоторые, вы должны указывать URL в кавычках (из-за точки с запятой).
mweerden 14.12.2008 03:45:30

Я подумал, что это может быть так, поэтому на одном из моих записей он вывел содержимое на страницу, которую я мог открыть в своем браузере. Это позволило мне манипулировать элементами формы и повторно отправлять, чтобы посмотреть, повлияет ли удаление определенных скрытых полей на сообщение. Когда я открыл страницу и удалил все скрытые поля (включая sessionId, подпись и время загрузки), я все же смог отправить форму, чтобы получить действительный ответ.

Думая, что это может указывать на какую-то проблему с cookie или сессией, я запустил Selenium (через пакет Testing_Selenium) и попытался сделать то же самое. Идея заключалась в том, что поскольку Selenium на самом деле использует настоящий браузер, любые проблемы с сессиями / файлами cookie должны быть устранены.

Когда селеновый забег не удался так же, как и с завитком, я был на грани сумасшествия.

Я надеялся, что кто-нибудь увидит что-то странное или необычное на этой странице, которое может объяснить ошибку.

Спасибо за ваш вклад, что вы думаете?

Шахиб Р.

0
14.12.2008 17:47:09