【发布时间】:2021-03-25 11:05:05
【问题描述】:
我目前使用 Selenium + Pandas 编写了一个代码来访问一个网站,登录到该网站(因为某些数据隐藏在帐户登录后面),然后转到特定页面并提取数据表,然后将该数据表保存到 Excel 工作表中。
问题是我需要来自 10-15 个不同页面的数据,并且都在一张 Excel 表中。
该网站说明了公司即将派发的股息,我有一份公司名单可供每天查看。
直接转到每个页面并将表格保存在每个页面的单独 Excel 工作表中。但是,我需要将它们全部结合起来。你会怎么做呢?
对于以下内容,我已排除登录详细信息,并以 Apple 作为示例公司。
# Load selenium components
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait, Select
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
import pandas as pd
# Establish chrome driver and go to report site URL
url = "https://www.dividendmax.com/login"
driver = webdriver.Chrome(executable_path="C:\PythonDrivers\chromedriver.exe")
driver.get(url)
# Establish login credentials
username = driver.find_element_by_id("user_session_email")
username.clear()
username.send_keys("MY_EMAIL_LOGIN")
password = driver.find_element_by_id("user_session_password")
password.clear()
password.send_keys("MY_PASSWORD")
# Instruct Selenium to complete login
driver.find_element_by_name("button").click()
#Define Portfolio & Links
URL = "https://www.dividendmax.com/united-states/nasdaq/technology-hardware-and-equipment/apple-inc/dividends"
#Instruct Selenium to go to Dividend Page
driver.get(URL)
#Instruct Selenium to obtain data from Table
page = driver.get(URL)
df = pd.read_html(driver.page_source)[0]
print(df.head())
# Write to Excel
df.to_excel('AppleScrape2.xlsx')
恐怕我对 Python 还是很陌生,所以如果代码有点乱,请见谅(只做了几天)
【问题讨论】:
-
在调用
df.to_excel('AppleScrape2.xlsx')之前尝试DataFrame.append合并您的数据帧,例如df = df.append(df2)、df = df.append(df3)、...
标签: python excel pandas selenium scrape