Download data from WRDS using Python Selenium

更新於 發佈於 閱讀時間約 7 分鐘
from selenium import webdriver
from time import sleep
import numpy as np
driver = webdriver.Chrome()
driver.get('https://wrds-www.wharton.upenn.edu/')
# Login WRDS
driver.find_element_by_id('id_username').clear()
driver.find_element_by_id('id_username').send_keys(ACCOUNT)
driver.find_element_by_id('id_password').clear()
driver.find_element_by_id ('id_password').send_keys(PASSWORD)
driver.find_element_by_xpath('//button[@class="btn btn-danger"]').click()
## -->CRSP
driver.find_element_by_xpath("//div[@class='col-md-4 col-lg-4'][1]//li[10]/a").click()
### -->stock files
driver.find_element_by_xpath("//div[@class='row m-bottom0'][2]/div[@class='col-md-4 col-lg-4'][1]//li[1]/a").click()
### -->daily
driver.find_element_by_xpath("//div[@class='col-md-4 col-lg-4'][1]//li[2]/a").click()
### -->TICKER FORMAT
driver.find_element_by_id('format-TICKER').click()
### -->all stocks in database
driver.find_element_by_id('search_option_method3').click()
### -->select columns
driver.find_element_by_id('select_all_button-80DBA1CF').click()
### -->output format
driver.find_element_by_id('csv').click()
## -->build date list
year = range(1930,1962)
year =[str(i) for i in year]
month = ['01','07']
list1 = []
list2 = []
for ix in year :
for iy in month :
list1.append( ix + '-' + iy +'-01')
list2.append( ix + '-' + str((int(iy)+5)).zfill(2)+'-'+str(30+int(iy)//6))
datelist = [list1,list2]
### --> for loop (change search dates)
datelist
for i in np.arange(39,41):
### -->modify end date before begin date, otherwise the begin date won't change
driver.find_element_by_id('select_end_date').clear()
driver.find_element_by_id('select_end_date').send_keys(datelist[1][i])
driver.find_element_by_id('select_beg_date').clear()
driver.find_element_by_id('select_beg_date').send_keys(datelist[0][i])
### -->submit query
driver.find_element_by_xpath('//button[@id="form_submit"]').click()
### -->switch to new page
driver.switch_to.window(driver.window_handles[1])
### -->click until 'csv' is prepared and download
temp=driver.find_element_by_xpath('//p[2]/a')
while not ('.csv' in temp.text):
sleep(5)
temp=driver.find_element_by_xpath('//p[2]/a')
driver.find_element_by_xpath('//p[2]/a').click()
### -->close new page and switch back to original page
driver.close()
driver.switch_to.window(driver.window_handles[0])
driver.switch_to.window(driver.window_handles[0])
len(datelist[0])
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Zhaung Eric的沙龍 的其他內容
R example of Branching Ratio
R example of Branching Ratio
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
在此篇中,我們來拿實務的例子作實戰練習,我們會討論如何在Google Colab的環境下,撈取所有台美股的股票代碼,並獲取相關細節,最後將獲取的資訊存取於SQLite資料庫中。
Day9-11 這幾天如火如荼地學寫資料庫,從最一開始的SELECT單一欄位數值 SELECT eyes FROM body (???)
Thumbnail
Selenium 是一個範圍廣泛的工具和函式庫的總稱專案,用於啟用和支援網頁瀏覽器的自動化。Selenium WebDriver 提供了 C#、JavaScript、Java、Python、Ruby 等多種語言的 API,可以用於編寫自動化測試軟體。 在定位元素時,WebDriver 提供對這 8
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
在數據分析的工作中,處理 CSV 檔案是一項基礎且重要的技能,CSV 格式的檔案是以純文字形式儲存表格數據,簡潔的結構使其普遍應用於數據儲存。本文將介紹如何使用Python 來讀取、處理和儲存 CSV 檔案。
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們回傳student_id為101的這筆資料,並且列出它的"name"和"age"欄位。 題目的原文敘述 測試範例 Example 1: Input: +------------+---------+-----+ |
Thumbnail
題目敘述 題目會給定一個python list形式的輸入,要求我們把它轉換成pandas dataframe的形式做輸出。並且指定column名稱分別為student_id, 和 age 題目的原文敘述 測試範例
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
在此篇中,我們來拿實務的例子作實戰練習,我們會討論如何在Google Colab的環境下,撈取所有台美股的股票代碼,並獲取相關細節,最後將獲取的資訊存取於SQLite資料庫中。
Day9-11 這幾天如火如荼地學寫資料庫,從最一開始的SELECT單一欄位數值 SELECT eyes FROM body (???)
Thumbnail
Selenium 是一個範圍廣泛的工具和函式庫的總稱專案,用於啟用和支援網頁瀏覽器的自動化。Selenium WebDriver 提供了 C#、JavaScript、Java、Python、Ruby 等多種語言的 API,可以用於編寫自動化測試軟體。 在定位元素時,WebDriver 提供對這 8
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
在數據分析的工作中,處理 CSV 檔案是一項基礎且重要的技能,CSV 格式的檔案是以純文字形式儲存表格數據,簡潔的結構使其普遍應用於數據儲存。本文將介紹如何使用Python 來讀取、處理和儲存 CSV 檔案。
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們回傳student_id為101的這筆資料,並且列出它的"name"和"age"欄位。 題目的原文敘述 測試範例 Example 1: Input: +------------+---------+-----+ |
Thumbnail
題目敘述 題目會給定一個python list形式的輸入,要求我們把它轉換成pandas dataframe的形式做輸出。並且指定column名稱分別為student_id, 和 age 題目的原文敘述 測試範例