Использование Python для заполнения данных в существующий файл Excel - PullRequest
0 голосов
/ 27 августа 2018

Что я пытаюсь сделать:

Я использую Python для заполнения данных в существующий файл Excel.

Что работает:

Мой код нижеуспешно экспортировать таблицу в файл Excel "Futures.xls".

Что не работает:

Приведенный ниже код извлекает таблицу с веб-сайта и экспортирует в файл Futures Excel (100 строк). Следующий код повторно открывает файл Futures и добавляет его в файл Excel Futures1 (200 рядов).Однако, если я продолжу выполнять последующий код несколько раз, я не смогу получить более 200 строк, например 300 строк и т. Д., Как при запуске кода.Может кто-нибудь сказать мне проблему?

Мой код:

from urllib.request import urlopen
from bs4 import BeautifulSoup
import requests
import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile
import os

url = "https://quotes.ino.com/exchanges/contracts.html?r=NYMEX_NG"
res = requests.get(url)
soup = BeautifulSoup(res.text, 'lxml')

Markets = []
Contracts =[]
Opens =[]
Highs =[]
Lows =[]
Lasts=[]
Changes=[]
Pcts=[]

data_rows = soup.findAll('tr')[3:]

for td in data_rows[:100]:
    Market = td.findAll ('td')[0].text
    Markets.append(Market)
    Contract = td.findAll('td')[1].text
    Contracts.append(Contract)
    Open = td.findAll('td')[2].text
    Opens.append(Open)
    High = td.findAll('td')[3].text
    Highs.append(High)
    Low = td.findAll('td')[4].text
    Lows.append(Low)
    Last = td.findAll('td')[5].text
    Lasts.append(Last)
    Change = td.findAll('td')[6].text
    Changes.append(Change)
    Pct = td.findAll('td')[7].text
    Pcts.append(Pct)
    Time = td.findAll('td')[8].text

    df = pd.DataFrame({'Contracts' :Contracts, 'Markets':Market,'Open':Opens, 'High':Highs, 'Low':Lows,'Last':Lasts,'Pct':Pcts})

    out_path = "C:\Sid\Futures.xls"
    writer = pd.ExcelWriter(out_path , engine='xlsxwriter')
    df.to_excel(writer,'Sheet2',index=False)
    writer.save()

    from openpyxl import load_workbook
    from openpyxl.utils.dataframe import dataframe_to_rows

    wb = load_workbook("C:\Sid\Futures.xlsx")
    ws = wb['Sheet2']

    from openpyxl import load_workbook
    from openpyxl.utils.dataframe import dataframe_to_rows

    wb = load_workbook("C:\Sid\Futures.xlsx")
    ws = wb['Sheet2']

    for row in dataframe_to_rows(df, header=None, index = True):
    ws.append(row)
    wb.save('C:\Sid\Futures1.xlsx')

Дополнительно:

Кроме того, какой код мне нужен, чтобы мой питон запускался автоматически при обновлении моего сайта?Цены меняются каждые 15 минут.

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