0

I'm trying to login to a website using python Request for an automation purpose. And I'm getting an error as 'str' object has no attribute 'text'

My code is

from BeautifulSoup import BeautifulSoup



logging.basicConfig(filename='app.log',level=logging.INFO)
headers = {
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}
def post_request_curl(data):
    try:   
           with requests.Session() as s:
              login_data=data['login_details']
              r = s.get(url=data['url'], headers=headers)
              soup = BeautifulSoup(r.content, 'html.parser')
              login_data['form_build_id'] = soup.find_all('input', attrs={'name': 'form_build_id'})['value']
              r = s.post(url=data['url'], data=login_data, headers=headers)

              return r  
    except Exception as e:
        logging.error('Error occurred ' + str(e))
Aaditya R Krishnan
  • 495
  • 1
  • 10
  • 31

1 Answers1

1

Try:

from bs4 import BeautifulSoup
import requests

logging.basicConfig(filename='app.log',level=logging.INFO)
headers = {
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}
def post_request_curl(data):
    try:   
           with requests.Session() as s:
              login_data=data['login_details']
              r = s.get(url=data['url'], headers=headers)
              soup = BeautifulSoup(r.content, 'html.parser')
              login_data['form_build_id'] = soup.find_all('input', attrs={'name': 'form_build_id'})['value']
              r = s.post(url=data['url'], data=login_data, headers=headers)

              return r  
    except Exception as e:
        logging.error('Error occurred ' + str(e))
Joshua Varghese
  • 5,082
  • 1
  • 13
  • 34