Python urllib2 отправив сообщение

1

Я хочу открыть страницу, затем найти номер и умножить на другое случайное число, а затем отправить его на страницу. Итак, что я делаю, это сохранить страницу как 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

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

  • 0
    Протокол HTTP не имеет состояния. Каждый HTTP GET и HTTP POST - это отдельный запрос. Я верю, что у вас есть провал в вашем дизайне / мышлении. Если вы хотите протокол с отслеживанием состояния, вам нужно использовать куки и сеансы.
  • 0
    у меня есть куки, чтобы держать меня в системе я не опубликовал весь сценарий
Теги:
post
urllib2

2 ответа

4

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

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

  • 0
    Да, большое спасибо
  • 1
    Не забудьте пометить ответ как правильный, если он отвечает на ваш вопрос.
0

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

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

  • 0
    я вижу, могу ли я сделать это с httplib?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню