我有一个 HTML 抓取工具,它解析一组特定的网站以获取所售产品的名称。如果产品在我们的白名单中,我们处理它的方式与不在白名单中的产品不同。 现在刮板返回产品的全名。可能是“Nike Air Jordan”或“Air Jordan by Nike”或“LunarEpic by Nike”等等,但耐克在我们的白名单中。 所以我现在正在做的是一个简单的或检查:
>>> product_name = get_prod_name(url)
>>> if 'Nike' in product_name:
do_process()
现在我们得到了这些列入白名单的产品的列表,例如 ['Nike'、'Reebok'、'Adidas'...] 除了
之外,是否有更好的方法来执行此检查if 'Nike' in product_name or 'Reebok' in product_name or 'Adidas' in product_name
? TX,克雷格
请您参考如下方法:
您可以使用内置的 any 函数:
products = ['Nike', 'Reebok', 'Adidas', ...]
if any(product in product_name for product in products):
...
另一种选择是使用正则表达式:
regex = '|'.join(re.escape(product) for product in products))
if re.search(regex, product_name):
...
但这几乎可以肯定是矫枉过正......
