gpt4 book ai didi

python - 如何在 BS4 中搜索包含给定字符串的标签?

转载 作者:行者123 更新时间:2023-12-01 01:18:08 24 4
gpt4 key购买 nike

在BeautifulSoup4中,如何搜索文本包含特定字符串的标签?例如,当搜索“skyrim”时,我想打印包含字符串“skyrim”的每个标签的内容(例如游戏标题)。

我尝试过使用

    if 'skyrim' in tag.string:

但它从不打印任何内容。

完整定义:

def search(self):
steam_results = self.soup.find_all('span', class_='title')

itr = 1
for tag in steam_results:
if self.title in tag.string: # <--- Not working
print(str(itr) + ': ' + tag.string + '\n')
itr = itr + 1

steam_results 示例:

>>> steam_results
[<span class="title">The Elder Scrolls V: Skyrim Special Edition</span>,
<span class="title">Skyrim Script Extender (SKSE)</span>,
<span class="title">Enderal</span>, ...]

预期结果:

  1. 上古卷轴 5:天际特别版
  2. Skyrim 脚本扩展器 (SKSE)

实际结果:不打印任何内容

最佳答案

问题在于子字符串检查,因为它区分大小写。如果您检查 skyrim,您将得到空结果,因为没有 title 包含 skyrim,而是包含 Skyrim。因此,将其与这样的小写标题进行比较,

steam_results = soup.find_all('span', class_='title')
for steam in steam_results:
if 'skyrim' in steam.getText().lower():
print(steam.getText())

输出:

The Elder Scrolls V: Skyrim Special Edition
The Elder Scrolls V: Skyrim VR
Skyrim Script Extender (SKSE)
The Elder Scrolls V: Skyrim Special Edition - Creation Club

关于python - 如何在 BS4 中搜索包含给定字符串的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54115932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com