繁体   English   中英

如何检查<span class=“person_name”>Beautiful Soup中</span>的某个字符串是否<span class=“person_name”>等于.txt文件中的一行?</span>

[英]How can I check if a certain string inside <span class=“person_name”> equals to a line in a .txt file in Beautiful Soup?

我想检查“ person_name”类中包含的字符串(在本例中为Natalie)是否等于文本文档中的另一行。

with open ('names.txt') as f:
   for line in f:
      url = urllib.request.urlopen("randomurl.com") 
      soup = bs.BeautifulSoup(url, 'lxml')
      name = soup.find('span', {'class':'person_name'})
      if name.string == line:
         print("The names match")

虽然

print(name.string) 

打印“ Natalie”作为测试,即使文本文档(Natalie)中的唯一行应该与name.string的输出匹配,以下if语句也不会打印任何内容。

if name.string == line:
    print("The names match")

在Python中从文本文件读取行会为它们提供结尾的换行符。 (毕竟这也是该系列的一部分。)

如果前导空格对于您而言并不重要,请使用以下命令清除输入:

if name.string.strip() == line.strip:
    # ...

BS文档说NavigableString类型也很可能是.string的返回值,而不实现与str比较。 在这种情况下,可以使用str(name.string)将其显式转换为str ,也可以使用name.get_text()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM