如何排除在对象obj
obj = soup.find_all('tag')
if "string" not in obj.text:
print obj.text
但由于对象obj使用了find_all()方法,因此没有打印任何内容。 应该做什么,以便我们只在obj中打印想要的字符串。
答案 0 :(得分:0)
您需要遍历find_all()
返回的列表:
for i in soup.find_all('tag'):
txt = i.text
if 'string' not in txt:
print txt
或者,您可以创建另一个列出过滤掉不需要的标签的列表:
filtered_lst = [i for i in soup.find_all('tag') if 'string' not in i.text]
这将为您提供Tag
个与find_all()
返回的对象类似的对象列表,但只包含'string'
中不包含.text
的标记。之后,你可以做你想做的事情:
for tag in filtered_lst:
print tag.text
另一方面,如果您的目标只是从标记文本中过滤'string'
,则可以使用replace()
字符串方法:
for tag in soup.find_all('tag'):
print tag.text.replace('string', '')
但是,请记住,这会删除'string'
文本中的任何位置,并且可能会留下不需要的空格以便稍后删除。例如:
>>> 'hellostring string'.replace('string', '')
'hello '