首页 > 解决方案 > “str”对象在 BeautifulSoup4 中没有属性“文本”

问题描述

我正在尝试使用 python Request 登录到一个网站以实现自动化目的。我得到一个错误'str' object has no attribute 'text'

我的代码是

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))

标签: python-3.xbeautifulsouppython-requests

解决方案


尝试:

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))

推荐阅读