替换BeautifulSoup列表中的元素文本



我目前正试图在这里取得一些成就,但遇到了障碍。希望你们善良的人能在这里帮助我。

假定存在两个classes-ab。我想用TrueFalse文本替换从站点中抓取的元素文本。

下面是我的代码片段:

fp_page = requests.get("https://www.kidocode.com/kmath")
soup = BeautifulSoup(fp_page.content, 'html.parser')
oss = ["a","b"]
raw_is_avail = soup.find_all('div', class_=oss)
for i in range(len(raw_is_avail)):
if raw_is_avail[i].class_ == "a":
'True'
else:
'False'
cleansed_avail.append(raw_is_avail[i])
print(cleansed_avail)

电流输出:['foo','bar','foo','bar']

预期输出:['True','False','True','False']

请告知。事先非常感谢。

使用列表理解生成cleansed_avail:

cleansed_avail = [item.class_ == "a" for item in raw_is_avail]

这将基于raw_is_avail中的项目创建一个True/False(布尔值,而非字符串(值的列表,即如果是item.class_ == "a",则为True,否则为False。输出:

[True, False, True, False]

如果需要作为字符串值,可以将布尔值强制转换为字符串:

cleansed_avail = [str(item.class_ == "a") for item in raw_is_avail]

输出:

['True', 'False', 'True', 'False']

如果你不熟悉这些列表理解,它的"古怪"形式可能是:

cleansed_avail = []
for item in raw_is_avail:
cleansed_avail.append(str(item.class_ == "a"))

您没有对字符串"True"one_answers"False"执行任何操作。我猜你想把它们附加到cleansed_avail中。

oss = ["a","b"]
raw_is_avail = soup.find_all('div', class_=oss)
for i in range(len(raw_is_avail)):
if raw_is_avail[i].class_ == "a":
cleansed_avail.append('True')
else:
cleansed_avail.append('False')

最新更新