Как получить значение из имени класса, используя селен в python? - PullRequest
1 голос
/ 26 апреля 2020

Я пытаюсь получить значение из имени класса, но единственное, что можно получить сейчас, - это вывод []. Итак, что я должен делать в следующем коде?

from selenium import webdriver
import time

options = webdriver.ChromeOptions()
options.add_argument('lang=pt-br')
driver = webdriver.Chrome(
    executable_path=r'./chromedriver.exe', options=options)
driver.get('https://economia.uol.com.br/cotacoes/cambio/')
time.sleep(5)
dolar = driver.find_elements_by_class_name('currency2')
time.sleep(5)
print(dolar)

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020

Вам не нужно selenium, чтобы получить эту информацию, попробуйте:

import requests

u = "https://api.cotacoes.uol.com/currency/intraday/list/?format=JSON&fields=bidvalue,askvalue,maxbid,minbid,variationbid,variationpercentbid,openbidvalue,date&currency=1"
j = requests.get(u).json()
dolar = j['docs'][0]['bidvalue']
# 5.5916

Демо


Примечания:

  • Если вам нужна другая информация, например, суточная вариация (variationpercentbid), найдите на json объект:

enter image description here

  • Изменение значения валюты в конце URL-адреса для другой валюты, например, currency=5, даст вам значения EUR.
0 голосов
/ 26 апреля 2020

Вы можете использовать get_attribute для получения значения веб-элемента. Также в вашем коде нет элемента с именем класса currency2.

Ниже приведен пример:

<input class="field normal" name="currency2" value="5,59" data-audience-click="{&quot;reference&quot;:&quot;ativar-campo-texto&quot;,&quot;component&quot;:&quot;currency-converter&quot;}" xpath="1">

Код для получения значения:

driver.get('https://economia.uol.com.br/cotacoes/cambio/')
currency = driver.find_element_by_name('currency2')
print currency.get_attribute("value")

Выход ::

5,59

...