Python Идентификатор облачного входа в SAP - PullRequest
1 голос
/ 19 марта 2020

Я пытаюсь автоматизировать некоторые задачи с помощью webscraping / post / et c и, похоже, не могу понять, как выполнить аутентификацию на конечной точке SAP, используя python. Конечная точка - https://ar2svx3jx.accounts.ondemand.com/, я пытаюсь использовать beautifulsoup и запросы для аутентификации, чтобы я мог войти на сайт с дублирующимися задачами, но я продолжаю ждать. Я пробовал несколько вариантов python, последний, после удаления связки, ниже.

#!/usr/bin/env python3

import requests
from bs4 import BeautifulSoup as bSoup
import argparse
import mechanize




class Calls:
    def __init__(self, filepath):
        with open(filepath, 'r') as rf:
            endpoint_list = rf.readlines()
            rf.close()

        payload = {
            "j_username": "the_username",
            "j_password": "the_password"
        }

        for endpoint in endpoint_list:
            r = requests.post(endpoint, allow_redirects=True)

            # print(r.url)
            # print(r.content)
            print(r.headers)
            print(r.request.headers)


    #     self.get_pages(endpoint_list)
    #
    # def soup_connection(self, page):
    #     soup = bSoup(page, 'html.parser')
    #     print(soup.prettify())
    #
    # def get_pages(self, endpoints):
    #     for endpoint in endpoints:
    #         return_page = requests.get(endpoint)
    #
    #         if return_page.status_code == 200:
    #             self.soup_connection(return_page.content)
    #         else:
    #             print('Unexpected status code:', return_page.status_code)


def main():
    try:
        parser = argparse.ArgumentParser(
            description='automated testing script')
        parser.add_argument('-f', metavar='file', type=str, help='path to files with endpoints')

        args = parser.parse_args()
        file_location = args.f or 'endpoints.txt'
        Calls(file_location)

    except FileNotFoundError as e:
        print('Error: %s' % e)


if __name__ == '__main__':
    main()```
...