Запись в новый ряд - Xlsxwriter - PullRequest
1 голос
/ 25 октября 2019

При первом размещении поста будьте осторожны, так как в настоящее время я изучаю Python на лету на работе:)

В любом случае, я решил попробовать написать что-то, что будет печатать цену акций каждые 2 минуты в Excel, используя xlsxwriter и Selenium для получения веб-страницы.

Моя проблема здесь в том, что когда он пишет в excel, заполняются только первые строки. Когда 2 минуты истекут, новая цена (если она есть) не напишет, чтобы преуспеть в новой строке.

Любая помощь, конечно, с благодарностью оценена - очень жду возможности стать частью сообщества! :)

Ура, ребята!

Код:

times = time.strftime('%H:%M:%S')
workbook = xlsxwriter.Workbook(r'\\dub-ppfs-001\Home\rglennon\Desktop\Firefox_Web_driver\Stock_Price.xlsx')
sheet = workbook.add_worksheet()
col = 1
row = 0


browser = webdriver.Firefox()
browser.get('https://www.marketwatch.com/investing/stock/pypl')

WebDriverWait(browser, 60, 5).until(ec.visibility_of_all_elements_located((By.XPATH, '//*[@class="value"]')))
browser.minimize_window()
pypl = browser.find_element_by_xpath('//*[@class="value"]')
openprice = (browser.find_element_by_xpath('//*[@class="intraday__close"]').text)


while True:
    for row in range(1):
        sheet.write(row, 0, pypl.text)
        row =+1
    for col in range(1):
        sheet.write(col, 1, times)
         col =+1
    if pypl.text >= '105.50':
        ps('metal.mp3')



    workbook.close()
    time.sleep(120)     

1 Ответ

0 голосов
/ 25 октября 2019

Исправлено с помощью выше! Спасибо, любезно :)

просто пришлось реально изменить цикл:

try:

pypl = browser.find_element_by_xpath('//*[@class="value"]')
openprice = browser.find_element_by_xpath('//*[@class="intraday__close"]').text




while True:
    pypl = browser.find_element_by_xpath('//*[@class="value"]')
    times = strftime('%H:%M:%S')

    sheet.write(row, 0,   pypl.text)
    row =row+1
    sheet.write(col, 1,   times)
    col =col+1

    print('PayPals current price is: $' +pypl.text)
    print('recorded at the time of : ' +times)
    print('\n')
    time.sleep(10)

    browser.refresh()
    WebDriverWait(browser, 60, 5).until(ec.visibility_of_all_elements_located((By.XPATH, '//*[@class="value"]')))
    pypl = browser.find_element_by_xpath('//*[@class="value"]')

except KeyboardInterrupt:
sheet.write_formula('D1', '=MAXA(A:A)')
workbook.close()


browser.quit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...