CURL, похоже, не ведет себя правильно здесь - PullRequest
0 голосов
/ 14 декабря 2008

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

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, потому что я получаю ответ обратно. Мне нужна помощь.

Любой

Шахиб Рошан

Ответы [ 2 ]

2 голосов
/ 14 декабря 2008

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

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

0 голосов
/ 14 декабря 2008

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

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

Когда пробежка Селена провалилась так же, как пробежка скручиваемости, я был в своем уме.

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

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

Шахиб Р.

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