• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Авторизация на сайте ( Python )

Ymacker

New member
06.03.2019
0
0
BIT
0
Начинаю пытаться питонить и парсить. Сразу полез в прикладную часть. Выбрал регистратора доменов и попытался спарсить дропов, воткнулся сразу же, прямо на этапе авторизации.
Python:
from selenium import webdriver
chromedriver ='D:\python\chromedriver.exe'
browser= webdriver.Chrome(chromedriver)
browser.get('https://member.expireddomains.net/domains/expiredru/?o=changes&r=d#listing')
login=browser.find_element_by_id('inputLogin')
password=browser.find_element_by_id('inputPassword')
login.send_keys('Login')
password.send_keys('Password')
Login.click()
Поля ввода login/pass он нашёл правильно, а вот кликать по логину не хочет, видимо, надо задавать как-то явно. Попытался решить ректально-орально через pyAutoGui эмуляцией нажатия Enter, взбрыкнул браузер (как я понял).
Подскажите, как правильно указать кнопку login селениуму.
 

f22

Codeby Academy
Gold Team
05.05.2019
1 919
226
BIT
1 644
Начинаю пытаться питонить и парсить. Сразу полез в прикладную часть. Выбрал регистратора доменов и попытался спарсить дропов, воткнулся сразу же, прямо на этапе авторизации.
Python:
from selenium import webdriver
chromedriver ='D:\python\chromedriver.exe'
browser= webdriver.Chrome(chromedriver)
browser.get('https://member.expireddomains.net/domains/expiredru/?o=changes&r=d#listing')
login=browser.find_element_by_id('inputLogin')
password=browser.find_element_by_id('inputPassword')
login.send_keys('Login')
password.send_keys('Password')
Login.click()
Поля ввода login/pass он нашёл правильно, а вот кликать по логину не хочет, видимо, надо задавать как-то явно. Попытался решить ректально-орально через pyAutoGui эмуляцией нажатия Enter, взбрыкнул браузер (как я понял).
Подскажите, как правильно указать кнопку login селениуму.
Вариантов нажатия на кнопку там очень много. Попробуй найти её id через
Python:
    element = driver.find_element_by_id("login")   
    element.click()
Или через
Python:
driver.find_element_by_xpath('//div[@id="login"]')
element.click()

В любом случае, открываешь DevTols в Chrome, там Elements и ищешь нужный элемент
 

Ymacker

New member
06.03.2019
0
0
BIT
0
Вариантов нажатия на кнопку там очень много. Попробуй найти её id через
Python:
    element = driver.find_element_by_id("login")
    element.click()
Или через
Python:
driver.find_element_by_xpath('//div[@id="login"]')
element.click()

В любом случае, открываешь DevTols в Chrome, там Elements и ищешь нужный элемент

Так и делал, dev'ом глянул какой CSS селектор у кнопки, воткнул на место и..... отработано без ошибок, но пользователь не авторизовался (((. Т.е. страница авторизации пропадает, меня перекидывает на главную, но вход в пользовательскую не выполняется.
Либо я туплю ( что вероятнее всего), либо сайт палит парсер.

Код:
from selenium import webdriver
chromedriver ='D:\python\chromedriver.exe'
browser= webdriver.Chrome(chromedriver)
browser.get('https://member.expireddomains.net/domains/expiredru/?o=changes&r=d#listing')
login=browser.find_element_by_id('inputLogin')
password=browser.find_element_by_id('inputPassword')
sleep=5
login.send_keys('login')
password.send_keys('Password')
element = browser.find_element_by_css_selector('button.btn.btn-default')
element.click()
 
Последнее редактирование:

f22

Codeby Academy
Gold Team
05.05.2019
1 919
226
BIT
1 644
Так и делал, dev'ом глянул какой CSS селектор у кнопки, воткнул на место и..... отработано без ошибок, но пользователь не авторизовался (((. Т.е. страница авторизации пропадает, меня перекидывает на главную, но вход в пользовательскую не выполняется.
Либо я туплю ( что вероятнее всего), либо сайт палит парсер.

Код:
from selenium import webdriver
chromedriver ='D:\python\chromedriver.exe'
browser= webdriver.Chrome(chromedriver)
browser.get('https://member.expireddomains.net/domains/expiredru/?o=changes&r=d#listing')
login=browser.find_element_by_id('inputLogin')
password=browser.find_element_by_id('inputPassword')
sleep=5
login.send_keys('login')
password.send_keys('Password')
element = browser.find_element_by_css_selector('button.btn.btn-default')
element.click()
Посмотри, какие данные передаются в запросе, какие передаются cookies.
Потом добавь их в запрос
browser.add_cookie({'name' : 'region', 'value' : 'ru'})

Установи fake_useragent для python
python -m pip install fake_useragent
в коде добавь случайный UserAgent
Python:
from fake_useragent import UserAgent

ua = UserAgent()
opts = Options()
opts.add_argument("user-agent=" + ua.google)
d = DesiredCapabilities.CHROME
d['goog:loggingPrefs'] = { 'browser':'ALL' }
browser= webdriver.Chrome(chromedriver, desired_capabilities=d, options=opts)
 
06.10.2020
2
0
BIT
0
Подскажите, плееез =)
Начал код писать
from selenium import webdriver

# Указываем полный путь к geckodriver.exe на вашем ПК.
browser = webdriver.Firefox()
browser.get("Красное Солнце - Плотная зига écouter gratuitement en ligne via Musique VK")
login = browser.find_element_by_id('quick_email')
login.send_keys('логин')
passwd = browser.find_element_by_id('quick_pass')
passwd.send_keys('пароль')
k=browser.find_element_by_id('quick_login_button')
k.click()
a=browser.find_element_by_class('AudioPlaylistSnippet__play')
a.click()

все работает, но не нажимает на запуск плейлиста.
пишет ошибку AttributeError: 'WebDriver' object has no attribute 'find_element_by_class'

Код кнопки на фото
 

Вложения

  • 1.JPG
    1.JPG
    27,8 КБ · Просмотры: 220
06.10.2020
2
0
BIT
0
Боюсь, так просто вы не сможете включить эту запись.
Сначала надо будет авторизоваться и использовать cookies, для отправки остальных запросов.
А как это сделать, что прописать. Подскажете?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!