【问题标题】:Python using RegEx to search a webpage for a match in a listPython 使用 RegEx 在网页中搜索列表中的匹配项
【发布时间】:2020-03-10 12:22:16
【问题描述】:

因此,这里的最终目标是在 Selenium 中进行网络爬网时识别与我列表中的任何项目的匹配项。这可能是一个愚蠢的语法错误。

代码:

criteriainactive = ['Inactive', 'Deleted', 'Terminated', 'Banned', 'Suspended']
statuscheck = re.search(criteriainactive,src)

追溯:

return _cache[type(pattern), pattern, flags]

TypeError: unhashable type: 'list'

如果有任何其他方法可以在网页中搜索上述列表,请告诉我。在此先感谢:)

【问题讨论】:

  • 单独搜索每个项目?
  • Scott,我目前的结构是这样的。它可以工作,但是如果列表更长,将来使用时,如果了解这样的功能以进一步压缩代码,那将是非常好的。
  • re.search 将字符串或正则表达式对象作为参数,而不是列表。 x = re.search("^some string$", txt)

标签: python regex list selenium


【解决方案1】:

re.search 将字符串或正则表达式对象作为参数,而不是列表。你可以使用类似的东西:

import re
criteriainactive = ['Inactive', 'Deleted', 'Terminated', 'Banned', 'Suspended']
for x in criteriainactive:
    statuscheck = re.search(x, src)
    print(x, statuscheck)

【讨论】:

  • 这成功了。感谢您进一步澄清为什么它不能正常工作!
【解决方案2】:

re.search 将正则表达式模式作为第一个参数,而不是列表。您可以通过执行类似的操作来搜索任一元素

pattern = f'({"|".join(criteriainactive)})'
re.search(pattern,scr)

【讨论】:

    最近更新 更多