我试图更新产品价格,从一个网站上刮他们的价格。然而,我已经达到一个不寻常的html格式,这是给我一些麻烦。我想把没有空格的价格还给你。目前,我的代码带来了所有的空间。你知道吗
<p class='product__price'> == $0
<span class='visuallyhidden'>Regular price</span>
"
£9.99
" == $0
</p>
我正在尝试以下方法:
soup = BeautifulSoup(web_page, "html.parser")
for product in soup.find_all('div', class_="product-wrapper"):
# Get product name
product_title = product.find('p', class_='h4 product__title').text
# Get product price
product_price = product.find('p', class_='product__price').text
product_price.strip()
但不幸的是,使用.strip()方法不起作用,脚本返回带有大量空格和“常规价格”的价格。你知道吗
你知道我怎么能拿到“9.99英镑”吗?你知道吗
这不起作用的原因是
p
元素包含两个子元素:span
元素text
节点当您不能
.text
在父元素p
上时,您将删除“span”标记。除此之外,内容还包含引号,这将使strip()
忽略这些引号内的空格。你知道吗要解决此问题,必须首先将文本内容与
span
节点隔离,这可以通过使用.children
跳入span
节点来实现。你知道吗最后,您可以告诉
.strip()
要删除哪些字符。你知道吗因此,假设
p
元素内部的结构总是这样我们可以这样做:您可以使用
contents
并获取最后一个元素,然后用“你应该试试这个
相关问题 更多 >
编程相关推荐