Как делают я отлаживаю Сеть:: ошибка HTTPInternalServerError при использовании Механизирует?

c:/ruby/lib/ruby/gems/1.8/gems/mechanize-1.0.0/lib/mechanize.rb:259:in `get': 500 => Net::HTTPInternalServerError (Mechanize::ResponseCodeError)

Я получаю вышеупомянутую ошибку, когда я пытаюсь перейти к следующей веб-странице

http://fakewebsite.com//admin/edit_building.cfm?page=buildings&updateMode=yes&id=1251

Я могу перейти очень хорошо, когда копия и вставляет ссылку в браузер.

Примечание: Этот веб-сайт действительно требует входа в систему, который я обрабатываю с кодом как следующее

$agent = Mechanize.new
$agent.get('http://fakewebsite//admin/login.cfm?res=-5')
form = $agent.page.forms.first
form.EMail = "admin"
form.Password = "password"
form.submit

Этот вход в систему работает просто великолепно, так как я получаю доступ к другим веб-страницам, защищенным входом в систему.

Я не уверен, куда пойти отсюда, какие-либо предложения?


Я решил проблему с некоторой справкой снизу. Складывается после того, как я успешно вхожу в систему в сайт, он берет меня к домашней странице. Эта домашняя страница имеет несколько iframes в ней указывающий на другие веб-страницы. Механизируйте автоматически не получает эти страницы. Когда я вручную получил их, я обнаружил, что эти страницы устанавливали cookie, которые были необходимы для доступа к другим страницам на сайте. Я по ошибке предположил, что все cookie установить после того, как процесс входа в систему был завершен, но прежде чем я прибыл в домашнюю страницу.

6
задан Janak 3 April 2010 в 02:07
поделиться

1 ответ

Я бы начал с включения логирования:

agent.log = Logger.new(STDOUT)

Это даст вам все заголовки, входящие и исходящие, которые вы можете использовать для понимания проблемы. Кроме того, я бы использовал http sniffer, например Scoop, который показал бы мне, что происходит, когда я вручную ввожу этот url в браузере. Тогда вы сможете сравнить, что делает ваш браузер с тем, что делает Mechanize, и найти проблему.

Также попробуйте установить user-agent, потому что некоторые сайты разрывают соединение, если mechanize честно представился.

agent.user_agent_alias = 'Mac Safari'
9
ответ дан 10 December 2019 в 02:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: