[Python] Get text body from SalesForce report

Discussão em 'Python' iniciado por Stack, Outubro 23, 2024.

  1. Stack

    Stack Membro Participativo

    I am trying to get SalesForce report via python using requests library. I am able to login successfully. The output I get with python does not contain any text body. How can I extract the text from python output.


    from simple_salesforce import Salesforce
    import requests
    import pandas as pd

    sf = Salesforce(username='',
    password='',
    security_token='')



    export_url = 'https://gkg-mfsa.lightning.force.com/lightning/r/Report/00O9N000000JwK2UAK/?export=1&enc=UTF-8&cf=csv'

    session = requests.Session()
    response = session.get(export_url,
    headers=sf.headers,
    cookies={'sid': sf.session_id})
    download_report = response.content.decode('utf-8')
    print(download_report)


    output

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">





    <script>
    function redirectOnLoad() {
    if (this.SfdcApp && this.SfdcApp.projectOneNavigator) { SfdcApp.projectOneNavigator.handleRedirect('https://gkg-mfsa.my.salesforce.com?ec=302&startURL=%2Fvisualforce%2Fsession%3Furl%3Dhttps%253A%252F%252Fgkg-mfsa.lightning.force.com%252Flightning%252Fr%252FReport%252F00O9N000000JwK2UAK%252F%253Fexport%253D1%2526enc%253DUTF-8%2526cf%253Dcsv'); } else
    if (window.location.replace){
    window.location.replace('https://gkg-mfsa.my.salesforce.com?ec=302&startURL=%2Fvisualforce%2Fsession%3Furl%3Dhttps%253A%252F%252Fgkg-mfsa.lightning.force.com%252Flightning%252Fr%252FReport%252F00O9N000000JwK2UAK%252F%253Fexport%253D1%2526enc%253DUTF-8%2526cf%253Dcsv');
    } else {
    window.location.href ='https://gkg-mfsa.my.salesforce.com?ec=302&startURL=%2Fvisualforce%2Fsession%3Furl%3Dhttps%253A%252F%252Fgkg-mfsa.lightning.force.com%252Flightning%252Fr%252FReport%252F00O9N000000JwK2UAK%252F%253Fexport%253D1%2526enc%253DUTF-8%2526cf%253Dcsv';
    }
    }
    redirectOnLoad();
    </script>

    </head>


    </html>





    <!-- Body events -->
    <script type="text/javascript">function bodyOnLoad(){if(window.PreferenceBits){window.PreferenceBits.prototype.csrfToken="null";};}function bodyOnBeforeUnload(){}function bodyOnFocus(){}function bodyOnUnload(){}</script>

    </body>
    </html>


    <!--
    ...................................................................................................
    ...................................................................................................
    ...................................................................................................
    ...................................................................................................
    -->





    How can I get the text part from the output?

    Edit:

    I have also tried simple_salesforce library approach, specifically using sf.restful to get the report. That gives me a invalid session id error, I have also posted a question about that, you can find it here

    Continue reading...

Compartilhe esta Página