【问题标题】:finding substring in string not returning true python在字符串中查找子字符串不返回真正的python
【发布时间】:2020-07-12 17:41:23
【问题描述】:

我有这些标签,这些标签是我从网络抓取工具返回的,作为我正在制作的 CLI 应用程序的一部分,我正在尝试查看标签中的子字符串是否包含我的单词列表中的一行。我试图手动将两个值都转换为字符串,但由于某种原因,什么都没有发生,并且在字符串中永远找不到子字符串

我尝试过使用下面的方法和'in'运算符,但我没有任何成功

这是我正在使用的方法

for tag in inputs:
    for line in input_wordlist:
        print(tag,line)
        if tag.find(str(line)): # check here if the substring is in the string
            print('YES THIS MATCHES')
            vulns.append(line) #add the vulnerability to the list

这是我比较的两个值的示例 左:标签作为字符串 右:我用作子字符串的单词表中的行

<input id="q-universal-search" type="hidden" value=""/>     hidden

【问题讨论】:

  • tagline 是变量字符串吗?试试if line.strip() in tag:
  • 什么是'tag'和'line'?你在用 BeatifulSoup 还是类似的东西?
  • @Roy2012 是的,我正在使用美丽的汤,我很抱歉没有澄清,行引用了我的文本文件中的一行,我从中提取了我的子字符串
  • 什么是“标签”?是BS元素吗?
  • @AndrejKesely 我能够使用 line.rstrip() 来匹配子字符串和字符串,如果您在单词列表中没有删除的每一行中都有一个额外的 \n我想发布这个作为答案我会接受它

标签: python python-3.x web-scraping substring


【解决方案1】:

查看print(tag,line) 的输出:

<input id="q-universal-search" type="hidden" value=""/>     hidden

line 变量似乎有一些空格需要修剪。

尝试if line.strip() in tag:if line.rstrip() in tag: 获得匹配。

【讨论】:

    【解决方案2】:

    你应该使用if substring in line 形式的if。像这样

    for tag in inputs:
        for line in input_wordlist:
            print(tag,line)
            if line in tag: # check here if the substring is in the string
    
                print('YES THIS MATCHES')
                vulns.append(line) #add the vulnerability to the list
    

    【讨论】:

    • 我已经尝试过了,不幸的是没有任何反应,并且子字符串无法识别
    • 请尝试这段代码sub = 'is'; line = 'some tag is hidden'; print(sub in line) # prints True;它工作正常。我认为问题在于标签和行等变量的值。
    猜你喜欢
    • 2014-03-17
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2021-12-18
    • 2014-02-27
    • 2011-07-13
    相关资源
    最近更新 更多