Web scraping with python

Odpowiedz Nowy wątek
2018-11-09 20:29
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/ch[...]CpwKCvZ8mr3cxRUC_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 :)

Pozostało 580 znaków

2018-11-09 22:09
0

Maja publiczne API.


Pozostało 580 znaków

2018-11-09 22:29
0

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

Pozostało 580 znaków

2018-11-10 00:21

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

Pozostało 580 znaków

2018-11-10 00:31
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ąć?

edytowany 1x, ostatnio: CzakuGim, 2018-11-10 00:36

Pozostało 580 znaków

2018-11-10 00:33
1

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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