Python urllib2 отправив сообщение - PullRequest
1 голос
/ 22 августа 2011

Я хочу открыть страницу, затем найти число и умножить на другое случайное число, а затем отправить его на страницу. Итак, я сохраняю страницу в виде HTML, затем нахожу 2 числа, умножая ее, затем отправляя ее как пост, но

post = urllib.urlencode({'answer': goal, 'submit': 'Submit+Answer'})
req2 = urllib2.Request("example", None, headers)
response = urllib2.urlopen(req, post) #this causes it not to work it opens the page a second time

это заставляет его подключиться во второй раз, и, таким образом, отправленное случайное число является неправильным, поскольку оно создает новое случайное число, так как я могу отправить запрос на публикацию на страницу, которую я уже открыл, без повторного открытия?

Ответы [ 2 ]

4 голосов
/ 23 августа 2011

Возможно, вы захотите использовать что-то вроде mechanize, что позволяет просматривать веб-страницы с отслеживанием состояния в Python. Вы можете использовать его для загрузки URL-адреса, считывания значения со страницы, выполнения умножения, помещения этого числа в форму на странице и отправки его.

Похоже ли это на то, что вы пытаетесь сделать? Эта страница дает некоторую информацию о том, как заполнять формы, используя mechanize.

0 голосов
/ 22 августа 2011

Я не верю, что urllib поддерживает сохранение соединения открытым, как описано здесь .

Похоже, вам придется отправить ссылку на исходный расчет обратно вместе с вашим постом. Или отправьте данные обратно одновременно с ответом, чтобы у сервера был какой-то способ сопоставления вопроса с ответом.

...