Как щелкнуть изображение на веб-странице с селеном - PullRequest
1 голос
/ 16 января 2020

Я пытаюсь нажать кнопку на странице (https://www1.nseindia.com/products/content/equities/equities/eq_security.htm).

Справочная информация: я не являюсь обычным пользователем селена. Просто пытаюсь получить данные с сайта. Узнать о селене можно на некоторых страницах справки.

Как-то я не могу нажать кнопку " Получить данные ".

Вот мой прогресс для остальные вещи, которые работают нормально .

url="https://www1.nseindia.com/products/content/equities/equities/eq_security.htm"

options = Options()
options.headless = False

browser = webdriver.Chrome(options=options, executable_path=r'/usr/bin/chromedriver')
browser.get(url)

select=Select(browser.find_element_by_id('dataType'))
select.select_by_value("priceVolumeDeliverable")

select=Select(browser.find_element_by_id('series'))
select.select_by_value("EQ")
#time.sleep(5)

select=browser.find_element_by_id('symbol')
select.clear()
select.send_keys("RELIANCE")

select=Select(browser.find_element_by_id('dateRange'))
select.select_by_value("3month")

Я попробовал следующее, чтобы нажать " Получить данные ".

submit_button = browser.find_element_by_xpath('//*[@id="submitMe"]')
submit_button.click()

browser.find_element_by_css_selector('.getdata-button').click()
browser.find_element_by_xpath("//button[@id='submitMe']").click();
browser.find_element_by_xpath('//a[img/@src="/common/images/btn-get-data.gif"]').click()
browser.find_element_by_id("get").click()
browser.find_element_by_id("submitMe").click()
browser.find_element_by_xpath("//div[@class='getdata-button']//div[@id='get']").click()

browser.find_element_by_css_selector('//*[@id="get"]').click()

browser.find_element_by_id("#get")
browser.execute_script("arguments[0].click();",browser.find_element_by_xpath('//input[@type="button" and @value="Get Results"]'))

Есть предложения, друзья?

1 Ответ

0 голосов
/ 16 января 2020

Вы можете получить данные, используя и . Вы можете играть с params, чтобы получить необходимые данные:

from bs4 import BeautifulSoup
import requests

headers = {
    'Accept': '*/*',
    'X-Requested-With': 'XMLHttpRequest',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',
    'Referer': 'https://www1.nseindia.com/products/content/equities/equities/eq_security.htm',
}

params = (
    ('symbol', 'RELIANCE'),
    ('segmentLink', '3'),
    ('symbolCount', '2'),
    ('series', 'EQ'),
    ('dateRange', '3month'),
    ('fromDate', ''),
    ('toDate', ''),
    ('dataType', 'PRICEVOLUMEDELIVERABLE'),
)

response = requests.get('https://www1.nseindia.com/products/dynaContent/common/productsSymbolMapping.jsp',
                        headers=headers, params=params)
soup = BeautifulSoup(response.text, 'html.parser')
rows = soup.select("tr")

for th in soup.select("th"):
    print(th.text)

for i in range(1, len(rows)):
    table_data = rows[i].select("td")
    for td in table_data:
        print(td.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...