如何修复我的代码在列表中找不到关键字的问题?

How can I fix my code not finding keywords in a list?

我有下面的代码。我需要它从 html 页面中提取产品名称,它做得很好。然后,我需要它将输入与列表中的元素匹配并输出它的索引。即使有'Liquid Tee'这样的元素,输入的是'liquid',也不匹配。

如果您知道原因,我将不胜感激!

这是代码示例:

import urllib3
from bs4 import beautifulsoup
from lxml import etree

url = https://www.example.com    
response = http.request('GET', url)    
soup = BeautifulSoup(response.data)    
keyword = input()    
data = etree.HTML(str(soup))    
all_names = data.xpath('//a[@class="name-link"]/text()')    
namenumbered = [i for i, s in enumerate(all_names) if keyword in s]    

如上所述,它区分大小写。如果您希望在 Liquid Tee 中找到 liquid,您可以使用正则表达式,或者在检查字符串中是否存在关键字时将其全部设为 caps/all 小写:

all_names = ['liquid!', 'Liquid Tee', 'LIQUID', 'liguid ', 'hello', 'The water is LiQuId.']

keyword = 'liquid'

namenumbered = [i for i, s in enumerate(all_names) if keyword.lower() in s.lower()]

输出:

正确输出在 index/position 0、1、2 和 5

处找到的液体
print (namenumbered)
[0, 1, 2, 5]

但不改低,只会识别位置[0]。

all_names = ['liquid!', 'Liquid Tee', 'LIQUID', 'liguid ', 'hello', 'The water is LiQuId.']

keyword = 'liquid'


namenumbered = [i for i, s in enumerate(all_names) if keyword in s]

输出:

print (namenumbered)
[0]