Web scraping with python

0

Hej,
dosłownie zaczynam drobny projekt wykorzystujący pythona. Chciałbym pobierać dane ze strony tradingview na temat aktualnego kursu złota.
Poniżej screenshot z platformy tradingview ( https://pl.tradingview.com/chart/dcfNG7Jx/?fbclid=IwAR3eE86KKYkpk_OfZyEV5EtcBqozziCpwKCvZ8mr3cxRUC_CFaQPUl9Ey-s )
screenshot-20181109200445.png

Na screenie zaznaczyłem dane które mnie interesują.
Mieszczą się między znacznikami "span"

Wstępnie wykorzystuję kod:

import requests
from bs4 import BeautifulSoup

url = "https://pl.tradingview.com/chart/dcfNG7Jx/?fbclid=IwAR3eE86KKYkpk_OfZyEV5EtcBqozziCpwKCvZ8mr3cxRUC_CFaQPUl9Ey-s"
response = requests.get(url, verify=False)
soup = BeautifulSoup(response.text, 'lxml')

print(soup)

Dlaczego nie mam możliwości pobrania tych danych?

W jaki inny sposób dotrzeć do tych danych?
Do tej pory próbowałem różnych metod, jednak udało mi się jedynie pobrać dane "statyczne" - tzn takie które nie zmieniają się w czasie rzeczywistym.
Pozdrawiam :)

0

Maja publiczne API.

0

Kumam, jednak nie zmienia to faktu, że chciałbym wiedzieć jak coś takiego zrobić :D

1

Prosta sprawa, dane są aktualizowane na wyświetlanej stronie za pomocą JavaScriptu. Jeśli chcesz coś z tym zrobić, potrzeba Tobie silnika JS.

0

Jak na razie zrobiłem coś takiego, jednak zdecydowanie nie jest to dobrym rozwiązaniem xD
Otwiera się strona z wykresem złota, odczytuje dane, wyświetlam po czym znów odświeżam stronę z tradingview.

from selenium import webdriver
from bs4 import BeautifulSoup
from time import sleep

url = 'https://pl.tradingview.com/chart/dcfNG7Jx/'

driver = webdriver.Chrome("C:/Users/Desktop/PYTHON/SELENIUM/chromedriver.exe")
while(1):
    driver.get(url)
    sleep(5)
    html = driver.page_source
    soup = BeautifulSoup(html, "lxml")
    spans=soup.find_all('span', {'class': 'dl-header-price'})
    for span in spans:
        print(span.text.replace('USD','').strip())

driver.close()

Potrzebny silnik js? Czy byłbyś w stanie podpowiedzieć jak to ruszyć? Od czego zacząć?

1

No, używasz silnika JS tutaj. Właśnie coś takiego miałem na myśli.

1 użytkowników online, w tym zalogowanych: 0, gości: 1