【问题标题】:How to find elements nested within an element using beautiful soup?如何使用漂亮的汤找到嵌套在元素中的元素?
【发布时间】:2021-05-26 23:19:46
【问题描述】:

在美丽的汤中,我如何检索嵌套元素?

下面我正在尝试检索产品的名称,即: LAP 13A 2-Gang SP 开关插座 + 3.1A 2-Outlet Type A USB 充电器 白色

<h1 id="product_description" tabindex="0">
<span itemprop="name">
LAP  13A 2-Gang SP Switched Socket + 3.1A 2-Outlet Type A USB Charger White
</span>
<span class="sm" id="product_code_container"> 
(<span itemprop="productID">4087P</span>)
<meta itemprop="sku" content="4087P">
</span>
</h1>

我尝试了下面的代码,但没有返回任何产品名称,只是空白:

soup = bs(page.content, 'html.parser')
product_title = soup.find('h1',attrs={'id':'product_description'}).find('span', attrs={'itemprop':'name'})
products.append(product_title.text)

【问题讨论】:

  • 请问网址是什么?它可能是动态添加的。

标签: python beautifulsoup


【解决方案1】:
from bs4 import BeautifulSoup
import requests

headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'
}

res=requests.get("https://www.screwfix.com/p/lap-13a-2-gang-sp-switched-socket-3-1a-2-outlet-type-a-usb-charger-white/4087p",headers=headers)
soup=BeautifulSoup(res.text,"html.parser")
title=soup.find("h1",attrs={"id":"product_description"}).get_text(strip=True)

输出:

'LAP  13A 2-Gang SP Switched Socket + 3.1A 2-Outlet Type A USB Charger White(4087P)'

第二种方法:

您可以尝试打印汤,并从不同的标签中找到标题 ex。我从p 标签中找到了标题。

p_tag=soup.find("p",attrs={"class":"pdp-float-cta__title"})
p_tag.get("title")

输出:

'LAP  13A 2-Gang SP Switched Socket + 3.1A 2-Outlet Type A USB Charger White'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    相关资源
    最近更新 更多