[英]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.