Когда вы вводите что-то, например яблоко в строку поиска по адресу https://finance.yahoo.com/, появляется меню поисковых предложений.
Я пытаюсь заставить его вернуть список, словарь или фрейм данных значений в этом раскрывающемся списке.
Например,
{'AAPL':['Apple Inc.','Equity - NMS','https://finance.yahoo.com/quote/AAPL?p=AAPL&.tsrc=fin-srch'],
'AAPL.BA':['Apple Inc.','Equity - BUE','https://finance.yahoo.com/quote/AAPL.BA?p=AAPL.BA&.tsrc=fin-srch'],
.....}
или
['AAPL','Apple Inc.','Equity - NMS','https://finance.yahoo.com/quote/AAPL?p=AAPL&.tsrc=fin-srch']
['APPL.BA','Apple Inc.','Equity - BUE','https://finance.yahoo.com/quote/AAPL.BA?p=AAPL.BA&.tsrc=fin-srch']
Последнее значение - это гиперссылка при нажатии на ссылку.
Вот мой код,
options = Options()
driver = webdriver.Chrome(executable_path=r'C:\Program Files\chromedriver\chromedriver.exe',options=options)
url = "https://finance.yahoo.com/"
driver.get(url)
time.sleep(2)
inputElement = driver.find_element_by_xpath('//*[@id="yfin-usr-qry"]')
inputElement.send_keys('apple')
time.sleep(2)
web_elem_list = driver.find_elements_by_xpath(".//ul[@class='M(0)']/li/div/div")
suggests = [web_elem.text for web_elem in web_elem_list]
print(suggests)
driver.close()
Но вывод продолжает оставаться пустым, я не могу найти элементы в поле предложений.
Я также пробовал использовать web_elem_list = driver.find_elements_by_xpath(".//ul[@class='f470fc71']/li/div/div")
Но у него нет никаких значений.
Как мне,
- Найдите xpath окна предложений?
- Создайте фрейм данных, словарь или список всех результатов (включая гиперссылку).
ОБНОВЛЕНИЕ:
Я понял первую часть вопроса, в xpath было слишком много / div. Я обновил свой вопрос, и часть кода теперь работает.
Но я все еще не понял вторую часть вопроса, я все еще не могу получить часть «Equity - NMS» и гиперссылки.