【问题标题】:Using Selenium + Pandas to extract a table from multiple different pages使用 Selenium + Pandas 从多个不同页面中提取表格
【发布时间】: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


【解决方案1】:

尝试DataFrame.append 组合您的数据框,例如,

df = df.append(df2)
df = df.append(df3)
#...

在致电df.to_excel('AppleScrape2.xlsx')之前。

【讨论】:

    猜你喜欢
    • 2021-07-26
    • 2022-10-18
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多