Как записать веб-данные в существующий файл Excel? - PullRequest
0 голосов
/ 11 июня 2019

Я написал код для таблицы статистики футбольной очистки и поместил каждую строку в список.Теперь я хотел бы поместить эти данные в существующий файл Excel и в определенный лист.В моем файле Excel есть много листов, и у меня есть один лист, предназначенный для хранения этих данных, но я не знаю, как это сделать.Поскольку мой код очищает 2 таблицы, я хотел бы, чтобы эти две таблицы располагались рядом друг с другом на листе Excel с двумя пустыми колоннами между ними.Я провел некоторые исследования в Интернете, но ничего полезного не получилось.

Я пытался использовать openpyxl, xlwt, я немного пробовал с пандами, но так как у меня не так много знаний, я не нашелрешение.Я использую Mac.

 from selenium import webdriver
 from bs4 import BeautifulSoup
 from selenium.webdriver.common.by import By
 from selenium.webdriver.support.ui import WebDriverWait
 from selenium.webdriver.support import expected_conditions as ec
 import time
 import pandas as pd

 # Open web page
 driver = webdriver.Firefox(executable_path='/Applications/Python 3.7/geckodriver')
 driver.get('https://www.whoscored.com/Regions/108/Tournaments/5/Italy-Serie-A')

 # Premi Continua per utilizzare il sito
 element=WebDriverWait(driver,20).until(ec.element_to_be_clickable((By.XPATH,"//button[contains(.,'Continue Using Site')]")))
 driver.execute_script("arguments[0].click();", element)
 time.sleep(3)

# Push Standings and Form
options_group_list = []
block_options = driver.find_element_by_xpath('//*[@id="tournament-tables- 16548-options"]')
all_options = block_options.find_elements_by_tag_name('a')[0:2]

for options in all_options:
     options_group_list.append(options)

for option in options_group_list:
     option.click()
     time.sleep(3)

     # Push on wide
     filter_button = driver.find_element_by_link_text("Wide")
     filter_button.click()
     time.sleep(3)

     # page source
     source = driver.page_source
     soup = BeautifulSoup(source, 'lxml')

     # find table and rows
     table = soup.find('table', {"id": "standings-16548-grid"})
     rows = table.find_all('tr')[2]

     # setting columns
     columns = [v.text for v in rows.find_all('th')]
     print(columns)

     # Data
     table_rows = table.find_all('tr')
     for row in table_rows[5:len(table_rows)]:
         row_list = []
         for data in row.find_all('td'):
            row_list.append(data.text)
         print(row_list)
...