python-3.x - “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))
解决方案
尝试:
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))
推荐阅读
- python - Pandas 将一列值(单热编码)映射到具有多个可能值的单列中
- python - 如何根据另一个列表的项目顺序对元组列表进行排序
- swift - 如何从不同的集合构建模型而不破坏 MVC - swift - Firebase
- javascript - HTML/CSS 缺少链接标签?
- c# - 如何将我本地机器上的 pdf 文件与 C# 中 pdf 格式的 http 响应进行比较
- keras - 如何在带有 Keras 的 MLP 末尾添加几个二进制分类器?
- webrtc - 将 perframe 元数据从 webrtc 客户端传输到浏览器
- python - 将文本文件中的对象打印到字符串中的列表
- javascript - 在使用 ajax 发送之前将表单数据转换为 json
- sql - Redshift / Postgres SQL - 将顺序数据拆分为多行