Ниже приведен код Python, который извлекает файл CSV с веб-сайта, используя селен. Когда вы первоначально заходите на этот сайт (Fangraphs.com), вы можете экспортировать данные из ссылки «Экспорт данных», которая упаковывает нужные данные в CSV. Код по сути открывает Firefox и выполняет кнопку «Экспорт данных», чтобы загрузить CSV в папку на моем компьютере. Кто-нибудь знает, можно ли вставить в столбец CSV дополнительный столбец данных? Дополнительный столбец будет содержать только одно значение. Например, столбец, в котором указан год (2018). Я думал, что пакет Pandas может быть полезен в этом случае, но я не был уверен, как он будет взаимодействовать со скребком селена. Заранее спасибо за совет!
import sys
import os
import time
from datetime import datetime
from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
today = datetime.today()
download_dir = os.getcwd()
default_filepath = os.path.join(download_dir, 'Fangraphs Leaderboard.csv')
desired_filepath = os.path.join(download_dir,
'{}_{}_{}_steamer.csv'.format(today.year, today.month, today.day))
profile = FirefoxProfile()
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", 'text/csv')
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", download_dir)
profile.set_preference("browser.download.folderList", 2)
driver = webdriver.Firefox(firefox_profile=profile)
driver.get("https://www.fangraphs.com/projections.aspx?
pos=all&stats=bat&type=steamer")
driver.find_element_by_link_text('Export Data').click()
time.sleep(10)
driver.quit()
if os.path.isfile(default_filepath):
os.rename(default_filepath, desired_filepath)
print('Renamed file {} to {}'.format(default_filepath, desired_filepath))
else:
sys.exit('Error, unable to locate file at {}'.format(default_filepath))