在Python中提取div标记和ulsoup之间的数据

在Python中提取div标记和ulsoup之间的数据,python,html,beautifulsoup,web-crawler,Python,Html,Beautifulsoup,Web Crawler,我正在尝试创建一个BeautifulSoup price网络爬虫。下面是我对爬行感兴趣的网站上显示的内容 <div class="product-total-price"> <span itemprop="price">$14.76</span> 输出为: - 我以前是父母,想看看发生了什么 <div class="product-total-price"> <span itemprop="p

我正在尝试创建一个BeautifulSoup price网络爬虫。下面是我对爬行感兴趣的网站上显示的内容

<div class="product-total-price">
                        <span itemprop="price">$14.76</span>
输出为:

-

我以前是父母,想看看发生了什么

<div class="product-total-price">
<span itemprop="price">-</span>

-
poof没有显示任何定价。我是编程新手,曾尝试对此进行研究,但运气不佳。任何帮助都将不胜感激,谢谢


正如你所看到的,这是一个
-
,而不是一个价格。

正如塞克所提到的,页面没有完全呈现出漂亮的汤。这就是为什么我得到了响应“-”,因为它只是价格上的一个占位符,直到页面可以调用一些javascript。这反过来会改变定价。这是我的解决方法

from selenium import webdriver

 browser = webdriver.Firefox()
 browser.get('https://www.homedepot.ca/en/home/p.12-sheetrock-ultralight-drywall-gypsum-panel-4-x-12.1000149007.html')
 elem = browser.find_element_by_css_selector('div.product-total-price > span')

 print(elem.text)
    **$14.76**
 browser.quit()
我使用selenium打开浏览器,以便加载价格。这将打开一个浏览器,它可能并不完美,但它肯定比价格为“-”更好


你可以在这里买到硒

从技术上讲,你得到了正确的答案。实际价格
($14.76)
在页面调用一些javascript之前不会呈现,这就是更改页面以显示实际价格
($14.76)
,而不是
-
的占位符。请在此阅读一些补救方法:谢谢你,塞克。我查看了你的链接并找到了解决方案。这并不理想,但它让我学到了更多。最后我使用了硒,我将在下面发布答案。非常感谢。
from selenium import webdriver

 browser = webdriver.Firefox()
 browser.get('https://www.homedepot.ca/en/home/p.12-sheetrock-ultralight-drywall-gypsum-panel-4-x-12.1000149007.html')
 elem = browser.find_element_by_css_selector('div.product-total-price > span')

 print(elem.text)
    **$14.76**
 browser.quit()