НЕ ВОЗМОЖНО С BS4 ALONE
Этот веб-сайт особенно использует JavaScript для обновления страницы и urlib et c. просто анализирует html содержимое страницы, а не Java Script или AJAX содержимое. Phantom Js или Selenium Web Browser предоставляют более механизированный браузер, который часто может запускать коды JavaScript, позволяющие динамически c веб-сайтам. Попробуйте использовать это:)
Использование Selenium Это можно сделать следующим образом:
from selenium import webdriver #its the library
import time
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup as soup
#it Says that we are going to Use chrome browser
chrome_options = webdriver.ChromeOptions()
#hiding the Chrome Browser
chrome_options.add_argument("--headless")
#Initiating Chrome with all properties we need (in this case we use no specific properties
driver = webdriver.Chrome(chrome_options=chrome_options,executable_path='C:/Users/shary/Downloads/chromedriver.exe')
#URL We need to open
url = 'https://nz.finance.yahoo.com/quote/NZDUSD=X?p=NZDUSD=X'
#Starting Our Browser
driver = webdriver.Chrome()
#Accessing the url .. this will open the page just as you open in Chrome etc.
driver.get(url)
while 1:
#it will get you the html content repeatedly .. So you can get the changing price
html = driver.page_source
page_soup = soup(html,features="lxml")
price = page_soup.find("div", {"class": "D(ib) Mend(20px)"}).text
print(price)
time.sleep(5)
Обратите внимание на лучшие комментарии, но надеюсь, что вы поймете это :) Иначе Посмотрите учебник на YouTube, чтобы получить правильное представление что делает бот Selenium
Надеюсь, что это поможет. Это работает идеально для меня :) Примите этот ответ, если он поможет вам