|
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
|
||||||||||||||||
Как нажать на кнопку на сайте?15.08.2013, 17:31. Показов 27990. Ответов 32
Метки нет (Все метки)
День добрый. использую Python 2.7 и библиотеку Grab. никак не могу нажать кнопку на сайте. "Name" у кнопки нет, по "Type" не получается единственное чего смог добиться:
но такой метод работает только если есть поле куда надо вводить текст (с этим проблем обычно не возникает) а вот если нужно нажать на кнопку (просто нажать (например предлогается в форме регистрации выбрать ваш пол)) возникает фэйл ![]() например если из приведеного выше скрипта исключить строчку
Спросил знакомого програмиста на PHP, он сказал что это может быть связанно с джавой (попробывали заполнить один сайт отключив джава скрипты и потерпели закономерный фэйл) хотелось-бы узнать так-ли это. Ведь если так то идея с пост запросами заранее практически обречена ибо на многих сайтах используют яву Вобмещем подскажите как нажать на кнопку, и действительно-ли джава влияет на этот процесс. Заранее спасибо. извиняюсь за ужасный слог но голова уже не варит совсем от всего этого
1
|
||||||||||||||||
| 15.08.2013, 17:31 | |
|
Ответы с готовыми решениями:
32
Как нажать кнопку на сайте и скачать архив по ссылке из ответа? Найти кнопку на сайте и нажать ее
|
|
15 / 15 / 2
Регистрация: 15.07.2011
Сообщений: 49
|
|
| 15.08.2013, 18:00 | |
|
Никогда не понимал, зачем такие муки?
Почему нельзя взять сниффер и посмотреть какие запросы куда посылаются по нажатию кнопки, а потом уже реализовать это программно. Через urllib или curl.
1
|
|
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
| 15.08.2013, 22:17 | |
|
1
|
|
|
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
|
|
| 17.08.2013, 12:09 [ТС] | |
|
Всем спасибо
попробую и напишу о результатах
0
|
|
|
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
|
|
| 30.08.2013, 22:21 [ТС] | |
|
вобщем пока дело продвинулось мало
![]() но появились вопросы: 1 реально нажать кнопку используя чисто Grab (не юзая при этом остальных библиотек, вот только не надо мне сейчас рассказывать про то что это просто обертка к другим библиотекам, итак в курсе, просто не хочется использовать лишних модулей) 2 "Никогда не понимал, зачем такие муки? Почему нельзя взять сниффер и посмотреть какие запросы куда посылаются по нажатию кнопки, а потом уже реализовать это программно. Через urllib или curl." я тоже никогда не понимал почему не написать норм доки на русском языке. Вы правда думаете что я не пытался? у меня есть и фаер баг и реквест маркер. другое дело что не понятно как писать код и примеров я найти не могу. Если для Вас все так просто и очевидно то приведите пример плиз вот для яндекса если все так просто то ведь не отнимет у Вас много времени так ведь? ![]() 3. как отправить с помощью Grab raw ? Добавлено через 9 минут и еще не маловажный момент у меня питон версии 2.7
0
|
|
|
135 / 120 / 37
Регистрация: 30.09.2012
Сообщений: 400
|
|||||||
| 30.08.2013, 23:51 | |||||||
|
Добавлено через 32 минуты Такой вариант тоже рабочий:
1
|
|||||||
|
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
|
||||||
| 31.08.2013, 23:19 [ТС] | ||||||
|
а у меня увы нет( пишет :
![]() просто отправлять данные в стандартное текстовое поле я могу, но дело в том что мне нужно нажимать на кнопки или просто выбирать из предложенного списка нужный вариант, например при регистрации на энном сайте, и чтобы сделать это мне нужен хотя-бы один работающий пример, с норм библиотеками, тоесть с ГРАБ-ом или на крайний случай с УРЛИБ-ом
0
|
||||||
|
135 / 120 / 37
Регистрация: 30.09.2012
Сообщений: 400
|
|
| 31.08.2013, 23:56 | |
|
python 2.7.3, grab 0.4.8, lxml 2.3.6, pycurl-ssl-7.19.0.
1
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
| 02.09.2013, 06:31 | ||||||
|
К чему такие сложности? Делай GET-запрос на http://yandex.ru/yandsearch, параметр text передавай в строке запроса.
Твой пример скорее всего не работал из-за ограничений robots.txt. Вот рабочий пример с mechanize:
1
|
||||||
|
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
|
|||
| 02.09.2013, 13:46 [ТС] | |||
не помогло ![]() может скините по емэйлу Вашу папку Python27? попробую просто заменить её в с вдруг заработает ![]() Добавлено через 2 часа 20 минут Спасибо за пример но не хочется учить еще одну библиотеку (во первых довольно долго + проблемы с установкой, во вторых у меня довольно много написано уже на грабе)
0
|
|||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|||||||||
| 02.09.2013, 14:03 | |||||||||
1
|
|||||||||
|
135 / 120 / 37
Регистрация: 30.09.2012
Сообщений: 400
|
|
| 02.09.2013, 22:48 | |
|
судя по ошибке - проблема в модуле lxml
Добавлено через 16 минут папку питон скинул
1
|
|
|
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
|
||||||||
| 03.09.2013, 20:58 [ТС] | ||||||||
![]() но теперь я вернулся к первоначальному вопросу: как нажать на кнопку если не известен её name? вот код кнопки:
эта кнопка открывает список со значениями из которых нужно одно выбрать. Я подозреваю что это из-за Джавы (ну я писал о своих подозрениях в самом начале этой темы)если и тут подскажите то будет вобще супер ![]() Добавлено через 2 минуты если с ГРАБ-ом не получится то придется механиз учить
0
|
||||||||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||
| 03.09.2013, 21:02 | ||
|
Если там Javascript, то, как мне кажется, никакое стандартное решение для питона не подойдет. Нужно брать headless browser (типа phantom.js) и плясать уже от него.
1
|
||
|
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
|
|||||||
| 03.09.2013, 22:42 [ТС] | |||||||
но видимо таки придется учиться ![]() всмысле с помощью браузера посмотреть исходные файлы и как-то подогнать программу под них? или прописать в проге значение агента для этого браузера? кстати на некоторые кнопки на этом сайте таки получается нажимать но при этом выползает в отслеживании адресная строка сайта с окончанием "edit-ad/Check" а в выходном файле при открытии выдает
![]() Добавлено через 1 час 28 минут эмм.... почитал чучуть про фантом.... Вы, я так понял, предлогаете мне новый язык выучить? Оо
0
|
|||||||
|
135 / 120 / 37
Регистрация: 30.09.2012
Сообщений: 400
|
|
| 03.09.2013, 22:51 | |
|
вместо set_input(), который требует имя кнопки, можно попробовать использовать set_input_by_xpath(xpath, value),
- кнопку выберем по xpath (по названию класса) или set_input_by_number(number, value) - кнопку выберем по ее порядковому номеру в форме.
1
|
|
|
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
|
||||||||||||||||||||||
| 03.09.2013, 23:50 [ТС] | ||||||||||||||||||||||
только вот в номере элемента я не уверен но все-же вроде третий судя по порядку и фаербагу код :
но стоит попробывать отправить её сабмитом как тут-же происходит то о чем я писал выше. тоесть ошибку не выдает но и не работает при этом и аутпут открывать не хочет по xpath-у как только не пробывал всеравно не выходит (тут пример с другой кнопкой уже на этой-же форме)
0
|
||||||||||||||||||||||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||
| 04.09.2013, 05:30 | ||||
|
Гадать о возможных причинах можно долго, ты же не можешь дать внятный ответ. Кинь ссылку на страницу, тогда можно будет сказать точно.
1
|
||||
|
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 52
|
||
| 04.09.2013, 13:16 [ТС] | ||
|
то что ты кинул больше похоже на язык программирования нежели на браузер внятной инструкции на русском опять таки нет. как на нем описывать шаги когда при передаче ссылки он выдает следующее: undefined Добавлено через 1 час 22 минуты а понятно кажется начинаю разбираться в фантоме. блин придется еще и прогу скачивать для того чтобы хоть примеры открыть (расширение не стандартное) вот поэтому и не люблю учить лишние вещи но в целом вроде прикольная штука Добавлено через 3 минуты хотя вроде в обчном блокноте открылось... странно что не определилось по умолчанию
0
|
||
| 04.09.2013, 13:16 | |
|
Помогаю со студенческими работами здесь
20
Как с использованием post запрос нажать на кнопку на сайте в python? Нажать кнопку на сайте не используя Selenium Как нажать на кнопку на сайте? Как нажать кнопку на сайте Как нажать кнопку на сайте? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|