Beautifulsoup解析CSS选择器值



我在一个网页上检查了以下元素,我试图抓取

<div data-testid="home-description-text-description-text" class="Text__TextBase-sc-1cait9d-0-div Text__TextContainerBase-sc-1cait9d-1 bjqKkI DescriptionTextBody__StyledTextContainer-sc-19zdz5l-1 fObgGE">
"Spectacular views of the Columbia river and Oregon hillsides. Bring your favorite builder. Secluded and very private. Mobile homes okay. Call your favorite Realtor today."

我一直无法使用page.select("data-testid")事实上,任何方法我都试图通过"div"找到。后面跟着"data-testid"都没有成功。我认为通过class_查找也会不成功,因为我相信类是由javascript生成的,并且每个页面将是不同的值,但我不清楚这是如何工作的。

我的目标是最终得到文字"哥伦比亚河和俄勒冈山坡的壮丽景色"。带上你最喜欢的建筑工人。隐蔽且非常私密。移动房屋,好的。今天就给你最喜欢的房地产经纪人打电话。">

是否有一种方法可以根据"home-description-text-description-text"的期望值进行搜索?

也许是这个?

html = '<div data-testid="home-description-text-description-text" class="Text__TextBase-sc-1cait9d-0-div Text__TextContainerBase-sc-1cait9d-1 bjqKkI DescriptionTextBody__StyledTextContainer-sc-19zdz5l-1 fObgGE">'
soup = BeautifulSoup(html, "html.parser")
soup.find_all(attrs={'data-testid': re.compile('home-description-text-description-text')})

选择器page.select("data-testid")是错误的,要选择标签属性,您需要使用方括号将它们括起来page.select("[data-testid]")

最新更新