【发布时间】:2018-05-04 03:39:07
【问题描述】:
以下是使用 selenium 从网站中提取 CSV 文件的 Python 代码。当您最初访问此网站 (Fangraphs.com) 时,您可以从将所需数据打包为 CSV 的“导出数据”链接导出数据。该代码实际上打开了 Firefox 并执行“导出数据”按钮以将 CSV 下载到我计算机上的文件夹中。有谁知道是否可以在抓取的 CSV 中插入额外的数据列?附加列将仅包含一个值。例如,列出年份 (2018) 的列。我在想 Pandas 包在这种情况下可能有用,但我不确定它如何与 selenium scraper 交互。提前感谢您的建议!
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))
【问题讨论】:
标签: python csv selenium web-scraping