Python 刮削多米诺骨牌';使用BS4的促销页面

Python 刮削多米诺骨牌';使用BS4的促销页面,python,beautifulsoup,Python,Beautifulsoup,我正试图抓取加拿大多米诺比萨饼的促销页面。基本上我想知道促销的名称和价格。我无法使用下面的代码获得结果 import requests from bs4 import BeautifulSoup dom_mainp = "https://www.dominos.ca/" response = requests.get(dom_mainp) soup = BeautifulSoup(response.content, "html.parser") sou

我正试图抓取加拿大多米诺比萨饼的促销页面。基本上我想知道促销的名称和价格。我无法使用下面的代码获得结果

import requests
from bs4 import BeautifulSoup

dom_mainp = "https://www.dominos.ca/"
response = requests.get(dom_mainp)
soup = BeautifulSoup(response.content, "html.parser")

soup.find("span", {"class": "promo__title__emphasis"})

提前感谢。

正如其他人提到的,Selenium将允许您在脚本加载所有元素后获取页面的HTML。然而,对于这个特定的页面,即使在我用selenium加载页面之后,soup也不会产生任何
span
元素。事实证明,我的电脑需要几秒钟才能正确加载脚本/元素,因此我必须输入一个睡眠函数来等待页面加载

从bs4导入美化组
从selenium导入webdriver
导入时间
browser=webdriver.Firefox()
url=”https://www.dominos.ca/"
browser.get(url)
时间。睡眠(10)#等待10秒钟,等待所有元素加载
html=browser.page\u源
soup=BeautifulSoup(html,features='html.parser')
span=soup.find_all('span',{“class”:“promo_uuuutitle_uuuemphasis”})
打印(跨距)
返回:

[<span class="promo__title__emphasis">2-Topping<br/>Pizzas</span>, <span class="promo__title__emphasis">2-Topping<br/>Pizzas</span>]
[2-Topping
比萨,2-Topping
比萨]
由于促销代码和价格在您的url目标上不可用,请用此url替换您的url,然后尝试删除元素,即价格和标题。例如:无限媒体2-Topping
比萨如果你查看页面来源,你将找不到内容。它是由javascript生成的。因此,在呈现页面之后,您需要访问它。尝试使用selenium打开页面并允许其呈现,然后可以使用代码查找html元素