2017-02-21 43 views
1

Я схожу с ума со следующей проблемой. То, что я хочу сделать, - это войти в веб-сайт, загрузить файл, сохраняя при этом запрос на загрузку в виде xlsx.Запросы или Urllib - Войдите на сайт, отправьте запрос на загрузку url и сохраните как xlsx

Я уверен, что мне нужно использовать библиотеку запросов, но, похоже, точно не знаю, как это сделать. Это то, что я до сих пор:

import requests 



# URL Data 



login_url = 'https://reporting.integralplatform.com/uaa/login#/' 

report_url = 'https://integralplatform.com/home/brand-safety/firewall?period=%5B2016-09-01..2017-02-19%5D&publisher=all&placement=all&deliveryEnvironment=%5Bdesktop%5D&includeCampaign=true&campaigns=52921%3A52919%3A52931%3A52922%3A52933%3A54272%3A52934%3A54370%3A54363%3A54372%3A54362%3A54369%3A54368%3A54366%3A54365%3A54367&includePlacement=true&grouping=placementName&dateGroup=daily' 

download_url = 'https://integralplatform.com/reportingservice/api/teams/3236/fw/campaigns/52921%253A52919%253A52931%253A52922%253A52933%253A54272%253A52934/report.xls?period=%5B2016-09-01..2017-02-19%5D&cutoff=250&mediaType=mixed&groups=%5Bcamp%3Apub%3Aplac%3Adaily%5D&tabs=%5Bfirewall%5D&settings=%7B%22Selected%20Report%22%3A%22Firewall%20Activity%22%2C%22Group%20Dates%20By%22%3A%22Day%22%2C%22Report%20By%22%3A%22Campaign%22%2C%22Campaign%22%3A%22%25%25CAMPAIGN_NAMES%25%25%22%2C%22Media%20Partner%22%3A%22All%22%2C%22Placement%22%3A%22Yes%22%2C%22Geo%20Level%22%3A%22Country%22%2C%22Cutoff%22%3A%22250%22%7D' 



# Payload 



payload = { 

    "username" : 'my username' 

, 

    "password": 'my password', 



    "_csrf_uaa": "507be70c-d4ff-4ea7-a3bf-d45cad3faa47", 

} 



# Authenticate 



login = requests.post(login_url, data=payload) 



# Download File 



download = requests.post(download_url, data=payload) 

Однако, в то время как я смотрю на обоих login.content и download.content кажется, что я не в состоянии даже войти в систему в качестве результата:

b'<!DOCTYPE html>\n<html lang="en" ng-app="iasLogin">\n<head>\n\n <meta charset="UTF-8">\n\n <title>IAS Login</title>\n\n\n <!-- Start Vendor CSS -->\n <link rel="stylesheet" href="css/ias-app-vendor.min.css">\n <!-- End Vendor CSS -->\n\n <!-- Start IAS CSS -->\n <link rel="stylesheet" href="css/ias-app.min.css">\n <!-- End IAS CSS -->\n\n</head>\n<body>\n\n <ias-headers></ias-headers>\n\n <div ui-view></div>\n\n <!-- Start Vendor JS -->\n <script src="js/ias-app-vendor.min.js"></script>\n <!-- End Vendor JS -->\n\n <!-- Start IAS JS -->\n <script src="js/ias-app.min.js"></script>\n <!-- End IAS JS -->\n\n</body>\n</html>' 

Что мне кажется, что я явно делаю что-то не так, когда дело доходит до полезной нагрузки. Однако я не знаю, как это исправить.

Чтобы уточнить, разница между report_url и download_url заключается в том, что download_url - это url, который я получаю, когда я нажимаю кнопку загрузки. Параметры фиксированы.

Спасибо за помощь

ответ

0

Вы, вероятно, должны включать в себя заголовки и данные форм, что страница отправляет вместе с вашей текущей полезной нагрузкой.