Я пытаюсь получить csv
с сайта aspx. Прямой ссылки на csv
нет, она генерируется сервером при публикации формы.
Следующее работает правильно в Google App Script с использованием UrlFetchApp:
Возвращает необработанные .csv
данные.
..// other code omitted for brevity
var page = UrlFetchApp.fetch(
"https://www.mycompanyurl.com/summary.aspx", {
"method": "POST",
"headers": {"Cookie": myCookieData},
"payload": {
'_ctl0:contact:isActive': '1',
'__VIEWSTATE': myViewstateData,
'__EVENTTARGET': '_ctl0:Main:ButtonExport',
'__EVENTARGUMENT': '',
'__LASTFOCUS': '',
'__VIEWSTATEENCRYPTED': '',
'__PREVIOUSPAGE': ''
}
});
Logger.log(page); // <---- prints the csv file content
Я пытался эмулировать это в библиотеке запросов Python.
..// other code omitted for brevity
..// cookies are in the session 's'
page = s.post(
'https://www.mycompanyurl.com/summary.aspx',
data={
'_ctl0:contact:isActive': '1',
'__VIEWSTATE': myViewstateData,
'__EVENTTARGET': '_ctl0:Main:ButtonExport',
'__EVENTARGUMENT': '',
'__LASTFOCUS': '',
'__VIEWSTATEENCRYPTED': '',
'__PREVIOUSPAGE': ''
}
);
print(page) // <---- prints the html content of the page
Я опустил 2 другие библиотеки, которые пытался завершить с тем же результатом. axios (node.js) и запрос (node.js)
Почему запрос работает в Google Script, но не в других, более популярных библиотеках.
Возможно, я упускаю что-то простое, но после многих часов попыток использовать разные конфигурации заголовков и несколько библиотек я в растерянности.