Попробуйте:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Chrome()
browser.get('https://www.nseindia.com/products/content/equities/equities/eq_security.htm')
# insert yesbank string
equity_name = browser.find_element_by_name('symbol')
equity_name.send_keys('YESBANK')
#select radio button
v = browser.find_element_by_css_selector("input#rdDateToDate")
v.click()
#insert from date
date_from = browser.find_element_by_id('fromDate')
date_from.send_keys('01-03-2019')
#insert to date
date_to = browser.find_element_by_id('toDate')
date_to.send_keys('01-05-2019')
# submit form
get_data = browser.find_element_by_xpath('//*[@id="get"]').click()
# wait util load table data and csv file
WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "download-data-link")))
#find csv file link parent tag by class name, finding parent tag to child tag because csv file link tag does not contain class name or id.
parentElement = browser.find_element_by_class_name('download-data-link')
# find csv file link by parent tag
link = parentElement.find_elements_by_tag_name("a")
#download csv file
print(link[0].click())
, где "download-data-link"
класс тега span и a
csv file link which
внутри тега span
Данные таблицы отходов:
addначало скрипта:
from bs4 import BeautifulSoup
добавление после WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "download-data-link")))
код строки
soup = BeautifulSoup(browser.page_source, 'lxml')
div = page_soup.find("div", {'class':"tabular-data-historic"})
table = div.find("table").find("tbody")
for tr in table.find_all("tr"):
for td in tr.find_all("td"):
print(td.text)