如何使用Selenium从动态网站中抓取数据



我是硒的新手,想通过Udemy课程链接获取价格提供结束时间。我该怎么做?

价格和课程结束时间会动态加载到网站。我知道如何从网站中提取简单的内容,但不知道如何提取动态内容。

我尝试过Parsel Library+Seleminium Library,但返回空字符串。因为当我在手机中查看源网站时,源中没有显示价格。但当我点击chrome或firefox的inspect元素选项时。价格在跨度标签内提供。意味着当页面在浏览器上呈现时,价格是动态加载的。我如何在硒中做到这一点?

这是一个例子Udemy课程链接:

https://www.udemy.com/course/data-science-deep-learning-in-python/

所有依赖项都已安装在您的环境中,此代码应该可以工作:

from selenium import webdriver
from bs4 import BeautifulSoup
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://www.udemy.com/course/appium-selenium-for-mobile-automation-testing/")
content = driver.page_source
soup = BeautifulSoup(content, 'html.parser')
price = soup.find('div', {'class':'price-text--price-part--Tu6MH udlite-clp-discount-price udlite-heading-xl'})
if price is not None:
price.text.strip()
price = price.replace('Current price','')
print('Price: ' + price)

offerEndTime = soup.find('span', {'data-purpose':'safely-set-inner-html:discount-expiration:expiration-text'}).text.strip()
print('Offer end time: ' +  offerEndTime)
else:
print('This is a free course')

相关内容

  • 没有找到相关文章

最新更新