繁体   English   中英

如何在 BeautifulSoup 对象中搜索字符串?

[英]How do you search for a string in a BeautifulSoup object?

我正在检查 Craigslist 的帖子,看看它们是否已被标记为删除。 我的脚本非常简单:

import requests
from bs4 import BeautifulSoup

def check_if_flagged(url):
    page = requests.get (url)
    soup = BeautifulSoup(page.content, 'html.parser')
    return ('flagged for removal' in soup)

问题是,我有一个 url,我知道一个事实已被标记为删除,但check_if_flagged返回False 这是在 BeautifulSoup 对象中搜索子字符串的正确方法吗? 有没有更优化的方法? 如果您重现此错误,请告诉我。

这是供参考的网址:'https://newyork.craigslist.org/brk/apa/d/brooklyn-1-bedroom-1-bath-apt-located/7206865558.html'

要搜索汤中的文本,您可以使用text=属性。 或者您可以将返回的 HTML 代码搜索为字符串:

import requests
from bs4 import BeautifulSoup

def check_if_flagged(url):
    page = requests.get(url).text
    return 'this posting has been flagged for removal' in page.lower()

def check_if_flagged2(url):
    page = requests.get(url)
    soup = BeautifulSoup(page.content, 'html.parser')
    return bool(soup.find(text=lambda t: 'this posting has been flagged for removal' in t.lower()))

url = 'https://newyork.craigslist.org/brk/apa/d/brooklyn-1-bedroom-1-bath-apt-located/7206865558.html'
print(check_if_flagged(url))
print(check_if_flagged2(url))

印刷:

True
True

暂无
暂无

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

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