Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 26, 2009 17:40:20

akolesnikov
От:
Зарегистрирован: 2009-10-26
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос про получение данных

Добрый вечер!
Собственно, задача.
Есть сайт банка Raffeisen. Страничка h**p://www.raiffeisen-capital.ru/fonds/unitinvestmenttrust/telecom/calculator/ (инвестиционный калькулятор). Задача - заполнить автоматически пункты (name in html) “sum”, “investment_date”, “redemption_date” (последнее получаю как time.strftime('%d.%m.%Y', time.gmtime())', в сгенерированной странице выдрать список (<ol>) с данными. Проблема вся в том, что отправка данных на сервер происходит как javascript:form.submit(), а я не врубаюсь как это организовать на питоне, + в <form> нет пункта “action” - не понятно, куда слать данные. Как решить проблему?
ОС - Ubuntu, но хотелось бы кроссплатформенное решение, желательно без сторонних модулей.



Отредактировано (Окт. 26, 2009 17:41:40)

Офлайн

#2 Окт. 26, 2009 17:44:34

akolesnikov
От:
Зарегистрирован: 2009-10-26
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос про получение данных

Пробовал httplib (request), urllib (POST). Про поля “hidden” тоже не забыл, но результата нет(



Офлайн

#3 Окт. 26, 2009 18:20:46

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопрос про получение данных

Посмотреть куда именно обращается джаваскрипт при сабмите.
Можно с помощью разных плагинов к фаерфоксу или wireshark'ом

Офлайн

#4 Окт. 26, 2009 18:37:24

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос про получение данных

Надо смотреть отправляемые заголовки. Я пользуюсь вот этим дополнением к файрфоксу.
А потом черзе urllib отправляю.



Отредактировано (Окт. 26, 2009 18:38:43)

Офлайн

#5 Окт. 26, 2009 18:50:22

akolesnikov
От:
Зарегистрирован: 2009-10-26
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос про получение данных

спасибо! а то отсутствие поля “action” и href=“#” ставило в тупик((
Попробую отпишусь.



Офлайн

#6 Окт. 26, 2009 19:13:45

akolesnikov
От:
Зарегистрирован: 2009-10-26
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос про получение данных

Как и обещал, отписываюсь. Все получилось, причем самое интересное что плагин для ФФ показал запрос POST, а у меня заработало с GET))
Итоговый скрипт:

import urllib, time

URL='http://www.raiffeisen-capital.ru/fonds/unitinvestmenttrust/telecom/calculator'
SUM='110000'
investment_date='16.10.2007'
redemption_date=time.strftime('%d.%m.%Y', time.gmtime())

params=urllib.urlencode({'funds':'11376', 'sum':SUM, 'investment_date':investment_date, 'redemption_date':redemption_date, 'calculator.purchase-agent-id.20065652-B556-4CAB-A52F-C6B08E1BE2D8':'B01E9785-0685-4EFC-A3B7-E5C2AA432034', 'calculator.sale-agent-id.20065652-B556-4CAB-A52F-C6B08E1BE2D8':'B01E9785-0685-4EFC-A3B7-E5C2AA432034', 'tax_rate':'1', 'DoCalc':'1'})
con=urllib.urlopen(URL+'?%s'%params)

data=con.read()

data=data[data.find('<OL>'):data.find('</OL>')+5]

print data

f=open('/home/alex/tmp.html' , 'w')
f.write(data)
f.close()



Офлайн

#7 Окт. 26, 2009 19:16:38

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопрос про получение данных

 href="#"
Так сразу бы и сказал. При таком урле отправляет на тот же адрес, на котором форма.

Офлайн

#8 Окт. 26, 2009 19:23:59

akolesnikov
От:
Зарегистрирован: 2009-10-26
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос про получение данных

Так сразу и сказал)
Все равно спасибо, теперь умею пользоваться отличной утилитой (чтение хедеров)



Офлайн

#9 Окт. 26, 2009 19:42:25

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопрос про получение данных

В первом посте нет про “#” в ссылке-сабмите.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version