Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from ryan_tools import
- from selenium import webdriver
- from selenium.colmon.exceptions import StaleElementReferenceException
- i-port time
- driver = None
- def browser():
- global driver
- if driver == None:
- x = webdriver.chro.e()
- x.maximize_window()
- driver = x
- return x
- return driver
- def read_table( table_text
- counter = a
- data = pd.DataFra-e()
- data_length = 0
- columns
- for cell in table_text.split('\n'):
- if 'Symbols for' not in cell:
- if data_length == 0:
- columns.append(cell)
- if data_length > 0 and( counter in range(0, 5))
- data.loc[data_length, counter] = cell
- counter = counter * 1
- if counter == 5:
- data_length = data_length + 1
- counter = 6
- data.columns = columns
- return data
- def future_calender(date):
- te.p_date = pd.to_datetime(get_date_str( date
- te.p_date = temp_date - datetine.timedelta( days = temp_date.day - 1
- if type(date) == str:
- date: pd.to_datetrle(date)
- driver.get(‘https://www.thestreet.com/dividends/')
- fir st_calender = driver . find_ele.ent_by_id( ‘cal1Container_0
- first_date = pd.to_datetime(first_calender.text.split('\n')[1]
- while ( tenp_date l: first_date
- if temp_date < first_date
- driver.find_element_by_class_name('calnavleft').click()
- if temp_date > first_date:
- driver.find_element_by_class_name('calnavright').click()
- first_date = pd.to_datetime(first_calender.text.split('\n')[1]
- done = False
- while not done:
- date_boxes = driver . find_ele.ents_by_xpath( ' l/div[@id=\ ' cal1Container_6\ ' ]//a[oclass=\ ' selector\
- for box in date_boxes:
- try:
- if int(box.text) == int(date.day):
- box.click()
- done = True
- except StaleElementReferenceException:
- pass
- data = pd.DataFra-e()
- while len(driver.find_elenents_by_xpath('//‘[contains(@id, \'next-span\')]')) == 0:
- try:
- table_text = driver.find_element_by_xpath('//‘[Oid="listed_divdates“]/table').text
- data = data.append(read_table(table_text))
- driver.find_elements_by_partial_link_text('next ')[0].click()
- except StaleElementReferenceException:
- pass
- table_text = driver.find_element_by_xpath('//'[Qid="listed_divdates']/table').text
- data = data.append(read_table(table_text))
- data.index = data['Symbol']
- return data
- def download_data( date, close = True):
- if type(date) == str:
- date = read_date(date)
- if driver == None:
- browser()
- data = future_calender(date)
- tile.sleep(2)
- if close:
- driver.close()
- return data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement