powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Программно нажать на кнопку web страницы
31 сообщений из 31, показаны все 2 страниц
Программно нажать на кнопку web страницы
    #39504812
Bujhm_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть сайт, к примеру на странице https://prozorro.gov.ua/tender/search/?query=ВП ЮУАЕС ДП НАЕК "Енергоатом" есть внизу кнопка " показать больше результатов ".
Внимание, вопрос!
Как программно нажать на эту кнопку (c# или vb.net).
Или, если задать вопрос по другому. Чтобы распастить данные, как отобразить все данные по всем страницам.
Спасибо, за помощь.
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39504870
maxim111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bujhm_C,

Я в таких случаях использую selenium
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39504949
Bujhm_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Selenium? Вообще не знаком.
А более изящный способ, стандартными компонентами Studio как победить?
Есть варианты?
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39504952
maxim111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bujhm_C,

Можно webbrowser использовать, это из стандартных. Приведите пример как пробуете вы. Что не получается?
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39504965
Bujhm_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот часть кода, если это поможет для разбирательства

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Private Function AcquireHTML(address As String) As String
        Dim request As HttpWebRequest
        Dim response As HttpWebResponse = Nothing
        Dim reader As StreamReader
        Dim sbSource As StringBuilder

        Try
            ' Create and initialize the web request
            request = TryCast(System.Net.WebRequest.Create(address), HttpWebRequest)
            request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1)"
            request.KeepAlive = False
            request.Timeout = 5 * 1000
            ' Get response
            response = TryCast(request.GetResponse(), HttpWebResponse)
            If request.HaveResponse = True AndAlso response IsNot Nothing Then
                ' Get the response stream
                reader = New StreamReader(response.GetResponseStream())
                ' Read it into a StringBuilder
                sbSource = New StringBuilder(reader.ReadToEnd())
                response.Close()
                '  
                ' Console application output
                Return sbSource.ToString()
            Else
                Return ""
            End If
            reader.Close()

        Catch ex As Exception

            response.Close()
            Return ""
        End Try
    End Function



' Затем я извлекаю данные с помощью функций

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 Private Function GetTitle(strIn As String) As String

        Dim collection As MatchCollection = Regex.Matches(strIn, "<title>([^<]*)</title>", RegexOptions.IgnoreCase Or RegexOptions.Multiline)
        For Each m As Match In collection
            If m.Value.IndexOf("<title>") >= 0 Then
                Dim intStart As Integer = m.Value.IndexOf("<title>")
                Dim intEnd As Integer = m.Value.LastIndexOf("</title>")
                Return m.Value.Substring(intStart + 7, intEnd - intStart - 7)
            End If
        Next
        Return ""
    End Function



Но все это касается текущей страницы, чтобы "стянуть" данные со следующей страницы, необходимо нажать эту злополучную кнопку "показать больше данных". Вот тут я и застрял. Задача еще усугубляется тем, что нажать на кнопку нужно столько раз, чтобы достичь конца всех страниц. Есть предложения?
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39504979
Фотография netfrog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может попросить нужные данные у админов этого сайта? Вдруг дадут.
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39504992
Bujhm_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не лишен чувства юмора, но тут ветка другая.
А предложение дельное. Можно и бабок попросить.
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505183
Juk2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bujhm_CЯ не лишен чувства юмора, но тут ветка другая.
А предложение дельное. Можно и бабок попросить.

тебеж написали
про веббравзер
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505211
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кнопка которая раскрывает список вызывает JS метод, который выполняет "дозагрузку".
Через HttpWebRequest\WebClient сделать это невозможно, так как они не умеет выполнять JS скипты, это дело браузеров.
Если существует такая кнопка, значит существует API через который эти дополнительные данные загружаются.
Обычно это какой то REST или SOAP сервис, к которому обращается скрипт.
Каким образом он это делает и что в результате получает, можно посмотреть в любом браузере через панель разработчика, если будет ссылка на сайт, с которого вы берёте данные, можно будет сказать как это сделать.

Тут еще остро стоит вопрос о том, на сколько правомерны ваши действия. Ведь та информация которые вы парсите вам не пренадлежит, а автор возможно не давал вам согласие на её использование.
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505226
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ботов для игр лучше писать на autofit
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505230
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Ботов для игр лучше писать на autofit
а кнопки давить посредством PhantomJS
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505349
Bujhm_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторТут еще остро стоит вопрос о том, на сколько правомерны ваши действия. Ведь та информация которые вы парсите вам не пренадлежит, а автор возможно не давал вам согласие на её использование.
Тут пожалуйста по подробнее.
А какую статью закона я нарушаю парся инфу открытого доступа. Я не взламываю пароли, не вношу изменения в БД и т.д. Так, что противозаконность моих действий очень даже не очевидна.
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505361
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Bujhm_Cна странице https://prozorro.gov.ua/tender/search/?query=ВП ЮУАЕС ДП НАЕК "Енергоатом"
Сходил по ссылке. Там есть API для разработчиков, но все равно надо давить на кнопку?
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505420
Bujhm_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор но все равно надо давить на кнопку?
Да нет же. Мне совсем не надо на нее давить (на кнопку). Мне нужно развернуть все страницы, чтобы распастить по тегам!
Если бы в командной строке был адрес следующей станицы, я бы эту задачу решил, пробежавшись циклом.
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505431
Bujhm_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторТам есть API для разработчиков
Если я правильно понял, рыть нужно здесь...
-просмотр кода HTML страницы.

516
Код: html
1.
2.
3.
4.
5.
   <button class="show-more" data-start="10">Показати більше результатів 11 — 20 з 1 773</button>
    
									</div>
			</div>
		</div>



Вопрос прямой- как открыть станицы с 1 по 773?
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505436
Bujhm_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторесли будет ссылка на сайт, с которого вы берёте данные, можно будет сказать как это сделать.

Так вот же она
https://prozorro.gov.ua/tender/search/?query=ВП ЮУАЕС ДП НАЕК "Енергоатом
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505438
Bujhm_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В начале поста правильная ссылка
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505463
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bujhm_CавторТам есть API для разработчиков
Если я правильно понял, рыть нужно здесь...
-просмотр кода HTML страницы.

516
Код: html
1.
2.
3.
4.
5.
   <button class="show-more" data-start="10">Показати більше результатів 11 — 20 з 1 773</button>
    
									</div>
			</div>
		</div>



Вопрос прямой- как открыть станицы с 1 по 773?
Неправильно ты понял. API делают как-раз для того чтобы HTML не парсить, т.е. просто посылаешь запрос нужной инфы и получаешь ответ в готовом виде, без всякого излишества в виде форматированного HTML и прочей навигации.

У меня тот сайт не открывается: "500 Server Error" пишет. Читай что там разработчики API предлагают.
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505493
Bujhm_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторУ меня тот сайт не открывается: "500 Server Error" пишет. Читай что там разработчики API предлагают.

Вот рабочая ссылка:

https://prozorro.gov.ua/tender/search/?query=ВП ЮУАЕС ДП НАЕК "Енергоатом"
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505927
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сабжу. Прекрасно себе кнопочки нажиматся на VBScript и JScript (не путать с javascrpt).
тынц .
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505933
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dima TНеправильно ты понял. API делают как-раз для того чтобы HTML не парсить, т.е. просто посылаешь запрос нужной инфы и получаешь ответ в готовом виде, без всякого излишества в виде форматированного HTML и прочей навигации.
+1

http://api-docs.openprocurement.org/uk_UA/latest/tutorial.html#tutorial
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505935
Pu4koff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так вот же описание API: http://api-docs.openprocurement.org/uk_UA/latest/
там только на птичьем языке, непонятно есть нужные функции или там API для размещения тендеров, а не их поиска.
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505939
Pu4koff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если прямо на кнопку нужно жать, то там по урлу https://prozorro.gov.ua/tender/form/search отправляется Post запрос:
Код: c#
1.
query%5B%5D=query%3D%D0%92%D0%9F+%D0%AE%D0%A3%D0%90%D0%95%D0%A1+%D0%94%D0%9F+%D0%9D%D0%90%D0%95%D0%9A+%22%D0%95%D0%BD%D0%B5%D1%80%D0%B3%D0%BE%D0%B0%D1%82%D0%BE%D0%BC%22&start=10


волнует собственно параметр start. Это что-то вроде: начинать с 10 элемента. Следующая кнопка будет с start=20.
нужно смотреть там может куки еще важны какие или реферал или еще к чему привязываются.
Возвращается json вида:
Код: c#
1.
2.
3.
4.
5.
{
"search_type":"tender",
"total":1777, // вероятно общее число тендеров по запросу
"html": кусок html кода, который просто вставляется на страницу,
"highlight":["ВП ЮУАЕС ДП НАЕК \"Енергоатом\""]}


итого можно просто слать post-запросы и каждую страницу отдельно парсить или же собирать одну огромную страницу и её разбирать.
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39505962
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Pu4koffТак вот же описание API: http://api-docs.openprocurement.org/uk_UA/latest/
там только на птичьем языке, непонятно есть нужные функции или там API для размещения тендеров, а не их поиска.
Мову не врозумляшь? Так там есть по английски вроде
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39506017
Pu4koff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Pu4koffТак вот же описание API: http://api-docs.openprocurement.org/uk_UA/latest/
там только на птичьем языке, непонятно есть нужные функции или там API для размещения тендеров, а не их поиска.
Мову не врозумляшь? Так там есть по английски вроде
Чего-то изначально на англицком API не нашел (когда на главной странице переключил на английский, то куда-то убежали ссылки). Вручную урл поменял, оказывается на буржуйском тоже есть: http://api-docs.openprocurement.org/en/
только там про поиск не нашёл. только перебор всех тендеров вроде есть.
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39507780
Bujhm_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pu4koff,

Не совсем понял как в строку адреса вбить Post Запрос

Вот это не работает
https://prozorro.gov.ua/tender/form/search query%5B%5D=query%3D%D0%92%D0%9F+%D0%AE%D0%A3%D0%90%D0%95%D0%A1+%D0%94%D0%9F+%D0%9D%D0%90%D0%95%D0%9A+%22%D0%95%D0%BD%D0%B5%D1%80%D0%B3%D0%BE%D0%B0%D1%82%D0%BE%D0%BC%22&start=10


Что не так?
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39507782
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bujhm_C,

при POST запросе данные необходимо заключать и передавать в теле сообщения, а не строке адреса.
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39507970
Bujhm_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

авторпри POST запросе данные необходимо заключать и передавать в теле сообщения, а не строке адреса.
А как это релиз на vb.net или c#.? Есть пример?
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39507972
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bujhm_C,

хм, вот один: https://msdn.microsoft.com/ru-ru/library/debx8sh9(v=vs.110).aspx

Или Вы хотите именно мной написанные? :) Мне сейчас лень комп включать, пишу с планшета.
Тем более примеры легко находятся в сети.
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39528746
Bujhm_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pu4koff,

ОК! то что нужно!
получилось https://prozorro.gov.ua/tender/search?query=ВП ЮУАЕС ДП НАЕК "Енергоатом"&start=20
У меня единственный вопрос к Pu4koff как узнать что подставлять в конце адреса (в нашем примере ;&start=...), если допустим это будет другой сайт.?
...
Рейтинг: 0 / 0
Программно нажать на кнопку web страницы
    #39532681
Pu4koff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bujhm_CPu4koff,

ОК! то что нужно!
получилось https://prozorro.gov.ua/tender/search?query=ВП ЮУАЕС ДП НАЕК "Енергоатом"&start=20
У меня единственный вопрос к Pu4koff как узнать что подставлять в конце адреса (в нашем примере ;&start=...), если допустим это будет другой сайт.?
Брать сниффер или в браузере инструменты разработчика и методом научного тыка определять что в каком случае передаётся и что получается.
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Программно нажать на кнопку web страницы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]