Я пытаюсь получить Automaticly некоторых данных с этого сайта: http://www.casablanca-bourse.com/bourseweb/en/Negociation-History.aspx?Cat=24&IdLink=225Python - Скачать файл из формы ASPX
с использованием urllib2 в питоне, я успешно получил HTML-файл, как если бы я нажимаю на кнопку «Отправить» на этом веб-сайте.
Но, когда я имитирую поведение нажатия на ссылку «скачать данные», я получил что-то в качестве вывода.
Мой код:
import urllib
import urllib2
uri = 'http://www.casablanca-bourse.com/bourseweb/en/Negociation-History.aspx?Cat=24&IdLink=225'
headers = {
'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36',
'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
}
formFields = (
(r'TopControl1$ScriptManager1', r'HistoriqueNegociation1$UpdatePanel1|HistoriqueNegociation1$HistValeur1$LinkButton1'),
(r'__EVENTTARGET', r'HistoriqueNegociation1$HistValeur1$LinkButton1'),
(r'__EVENTARGUMENT', r''),
(r'__VIEWSTATE', r'/wEPDwUKMTcy/ ... +ZHYQBq1hB/BZ2BJyHdLM='), #just a small part because it's so long !
(r'TopControl1$TxtRecherche', r''),
(r'TopControl1$txtValeur', r''),
(r'HistoriqueNegociation1$HistValeur1$DDValeur', r'9000 '),
(r'HistoriqueNegociation1$HistValeur1$historique', r'RBSearchDate'),
(r'HistoriqueNegociation1$HistValeur1$DateTimeControl1$TBCalendar', r'22/12/2014'),
(r'HistoriqueNegociation1$HistValeur1$DateTimeControl2$TBCalendar', r'28/12/2014'),
(r'HistoriqueNegociation1$HistValeur1$DDuree', r'6'),
(r'hiddenInputToUpdateATBuffer_CommonToolkitScripts', r'1')
)
encodedFields = urllib.urlencode(formFields)
req = urllib2.Request(uri, encodedFields, headers)
f = urllib2.urlopen(req)
Что я должен сделать для того, чтобы получить тот же файл, как если бы я нажимаю на «загрузить данные» ссылка на сайт?
Спасибо
Причина изменения значений формы в формате «ASP.NET» каждый раз, когда вы извлекаете страницу, вам нужно проанализировать значения из полученного HTML-кода, а не жестко кодировать их. – alecxe