我目前正试图在这里取得一些成就,但遇到了障碍。希望你们善良的人能在这里帮助我。
假定存在两个classes
-a
和b
。我想用True
或False
文本替换从站点中抓取的元素文本。
下面是我的代码片段:
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')