#python #selenium #web-scraping #consolidation
#python #селен #очистка веб-страниц #консолидация
Вопрос:
Я создаю бот для торговли акциями для развлечения и покупки / продажи на симуляторе биржевой торговли. Я выполнил всю веб-обработку, все send_keys выполнены. Я просто хочу иметь возможность выполнять несколько строк кода как одну простую команду вместо того, чтобы повторять код снова и снова, делая программу действительно длинной. Например, если я хочу купить акции, я должен выполнить весь этот код, чтобы завершить заказ на покупку:
driver.find_element_by_xpath('/html/body/div[4]/div[3]/div[1]/div[1]/div/div[1]/input').click()
driver.find_element_by_xpath('/html/body/div[4]/input').send_keys(('GOOGL') , Keys.RETURN)
time.sleep(1)
driver.find_element_by_xpath('/html/body/div[4]/div[3]/div[1]/table/tbody/tr/td[2]/a/span').click()
time.sleep(1)
driver.find_element_by_xpath('/html/body/div[7]/div/div/div[3]/div/button').click()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="shares"]').click()
driver.find_element_by_xpath('//*[@id="shares"]').clear()
driver.find_element_by_xpath('//*[@id="shares"]').send_keys('0.01')
driver.find_element_by_xpath('/html/body/div[7]/div/div/div[1]/form/div[3]/div/button[3]').click()
Я довольно новичок в этом, и я знаю, что это не сработает, но могу ли я сделать что-то вроде:
Buy = driver.find_element_by_xpath('/html/body/div[4]/div/div[1]/input').click()
driver.find_element_by_xpath('/html/body/div[4]/input').send_keys(('GOOGL') , Keys.RETURN)
time.sleep(1)
driver.find_element_by_xpath('/html/body/div[4]/table/tbody/tr/td[2]/a/span').click()
time.sleep(1)
driver.find_element_by_xpath('/html/body/div[7]/div/div/div[3]/div/button').click()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="shares"]').click()
driver.find_element_by_xpath('//*[@id="shares"]').clear()
driver.find_element_by_xpath('//*[@id="shares"]').send_keys('0.01')
driver.find_element_by_xpath('/html/body/div[7]/div/div[1]/form/div[3]/div/button[3]').click()
Тогда я могу просто добавить переменную ‘Buy’ (или любую другую) в свой оператор If вместо всего этого списка кода.
if xxxxxxxxx
execute "Buy"
Комментарии:
1. Вы пробовали использовать
def
?
Ответ №1:
Вы имеете в виду функцию?
def buy():
driver.find_element_by_xpath('/html/body/div[4]/div[3]/div[1]/div[1]/div/div[1]/input').click()
driver.find_element_by_xpath('/html/body/div[4]/input').send_keys(('GOOGL') , Keys.RETURN)
time.sleep(1)
driver.find_element_by_xpath('/html/body/div[4]/div[3]/div[1]/table/tbody/tr/td[2]/a/span').click()
time.sleep(1)
driver.find_element_by_xpath('/html/body/div[7]/div/div/div[3]/div/button').click()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="shares"]').click()
driver.find_element_by_xpath('//*[@id="shares"]').clear()
driver.find_element_by_xpath('//*[@id="shares"]').send_keys('0.01')
driver.find_element_by_xpath('/html/body/div[7]/div/div/div[1]/form/div[3]/div/button[3]').click()
Теперь вы можете запускать свой код только с buy()
помощью .
if condition:
buy()
Ответ №2:
def x(): было правильным решением.