powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
25 сообщений из 115, страница 2 из 5
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725561
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spartak19Подскажите, как получить голый HTML и сохранить в файл?
Через WebBrowser? Смотрите свойство DocumentText
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725637
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача - эпический бред. Других слов нету.
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725674
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ,
В чем же бред?
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725685
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spartak19МСУ,
В чем же бред?
В самой постановке задаче. Мне страшно представить такой интерфейс, где есть 2 браузера. Причем, кастрированных и убогих. Из которых ты хочешь слепить конфетку. Я даже против самой идеи хостинга веб браузера в десктоп приложении. Кривизна в архитектуре и только. Есть браузер в системе, его и пользуй. А смешивать ежей с удавами дело неблагодарное.
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725693
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЯ даже против самой идеи хостинга веб браузера в десктоп приложении. Кривизна в архитектуре и только.Сам IE хостит веббраузера в десктоп приложении. Собственно, по архитектуре IE и есть десктоп-приложение, хостящее веббраузер-контролы.
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725725
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ,

Как тогда сделать разумно? В каком направлении копать?
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725815
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите наиболее подходящий способ для решения данной проблемы
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725853
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyСам IE хостит веббраузера в десктоп приложении. Собственно, по архитектуре IE и есть десктоп-приложение, хостящее веббраузер-контролы.
По архитектуре IE - это полноценный браузер. Не важно что он хостит и как он это делает. Зачем он сдался в клиентском приложении автора, загадка. Или ты знаешь ответ на этот вопрос?

Spartak19МСУ,
Как тогда сделать разумно? В каком направлении копать?
Для начала нужно понять, какую задачу ты решаешь.
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725875
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ,

Мне нужно авторизоваться, сделать переход на нужные страницы и парсить с них данные.
То что касается авторизации через IE, я знаю как
Код: vbnet
1.
2.
3.
4.
ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.document.getelementbyid("USERNAME").Value = Login 
ie.document.getelementbyid("PASSWORD").Value = Password 



Но отдельный запуск IE мне не нужен, тем более вне приложения, а через webbrowser ошибка

Код: vbnet
1.
2.
Webbrowser1.document.getelementbyid("USERNAME").Value = Login 
Webbrowser1.document.getelementbyid("PASSWORD").Value = Password 



По возможности, хочется вообще без браузеров авторизоваться и вытянуть нужные данные, но пока не понимаю как
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725893
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spartak19, visak уже привел тебе ссылку 16470650 . Там есть пример авторизации на Яндекс. Сделай по аналогии для своего сайта. Парсить полученный html можно с помощью HtmlAgilityPack .
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725907
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile,
Приведи пример парсинга с помощью HtmlAgilityPack, так как я уже парсинг организовал, но через webbrowser
код ниже

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim Tables As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("Table")
    Dim Table As HtmlElement = WebBrowser1.Document.GetElementsByTagName("Table").Item(0)
    Dim Rows As HtmlElementCollection = Table.GetElementsByTagName("tr")
    For j = 0 To Rows.Count - 1
      Dim Cels As HtmlElementCollection = Rows.Item(j).GetElementsByTagName("td")
      For i = 0 To Cels.Count - 1
        If Cels.Item(i).InnerText <> "" Then
          Dim Cel As HtmlElement = Cels.Item(i)
           
        End If
      Next
    Next


Данные записываю в таблицу в Datatable, потом Datagridview.Datasource = Datatable в общем так
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725911
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spartak19МСУ,

Мне нужно авторизоваться, сделать переход на нужные страницы и парсить с них данные.
То что касается авторизации через IE, я знаю как
Код: vbnet
1.
2.
3.
4.
ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.document.getelementbyid("USERNAME").Value = Login 
ie.document.getelementbyid("PASSWORD").Value = Password 



Но отдельный запуск IE мне не нужен, тем более вне приложения, а через webbrowser ошибка

Код: vbnet
1.
2.
Webbrowser1.document.getelementbyid("USERNAME").Value = Login 
Webbrowser1.document.getelementbyid("PASSWORD").Value = Password 



По возможности, хочется вообще без браузеров авторизоваться и вытянуть нужные данные, но пока не понимаю как

Используй объектную модель IE, Interop.SHDocVw.dll и microsoft.mshtml. Вот тут пример, как парсить http://codearticles.ru/articles/2384
Это полноценный движок, а не огрызок.
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725923
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725939
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ,

Тот код указан на C, я делаю все в VB.NET. Надо переписать
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725952
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Spartak19,

Сейчас пробую сделать через WebClient
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38725997
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЗачем он сдался в клиентском приложении автора, загадка. Или ты знаешь ответ на этот вопрос?В клиентском приложении не IE, а webbrowser control, и это нормально. Но автору, насколько я понимаю, он не нужен, тем более два. И да, я знаю ответ на вопрос, зачем это может быть нужно в принципе.

У меня есть программа, написанная по аналогии IE, это браузер каталога документов:
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38726020
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,

Правильно ли я сделал, что
1) Пошел по пути HttpWebRequest и HttpWebResponse для авторизации?
2) У меня возникнут проблемы при парсинге этим методом(я толком не пойму что мне вернет метод HttpWebRequest и HttpWebResponse, и как то что вернется парсить, мне понятно как работает мой код для парсинга, но только в webbrowser)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim Tables As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("Table")
    Dim Table As HtmlElement = WebBrowser1.Document.GetElementsByTagName("Table").Item(0)
    Dim Rows As HtmlElementCollection = Table.GetElementsByTagName("tr")
    For j = 0 To Rows.Count - 1
      Dim Cels As HtmlElementCollection = Rows.Item(j).GetElementsByTagName("td")
      For i = 0 To Cels.Count - 1
        If Cels.Item(i).InnerText <> "" Then
          Dim Cel As HtmlElement = Cels.Item(i)
           
        End If
      Next
    Next


3)Если Вам не трудно покажите на примере сайта http://www.minfin.ru/ru/accounting/reestr_audit/auditors/index.php?from4=1
парсинг таблицы через метод авторизации(HttpWebRequest и HttpWebResponse)
4) Если я ерунду написал, не судите строго, все предлагают свои методы, но примера конкретного нет. Поэтому я запутался
Одни пишут что надо выполнить авторизацию+парсинг:
а) Через HttpWebRequest и HttpWebResponse
б) InternetGetCookie/InternetGetCookieEx/InternetSetCookie/InternetSetCookieEx
в) WebClient + CookieContainer
г) HtmlAgilityPack
д) Я толком знаю как выполнить авторизацию и парсинг через Webbrowser, но это не совсем подходит, по причине аннулирования авторизаций

Antonariy, я вижу вы разбираетесь да и готовая прога на скрине(не то что мне надо, но делали вы)

Подскажите на примере если Вам не трудно.
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38726022
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Spartak19,

Дело в том что легче на готовом примере разобраться
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38726108
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spartak19,

1. Да. Потому что WebBrowser не даст тебе авторизоваться одновременно под разными логинами. Поэтому нужно вручную отправлять запрос с помощью HttpWebRequest или WebClient

2. HttpWebResponse вернет тебе Stream. Из него ты прочитаешь строку с помощью StreamReader и получишь таким образом html код страницы.

3. Вот пример скачивания страницы http://www.minfin.ru/ru/accounting/reestr_audit/auditors/index.php?from4=1 с помощью WebClient. Никакой аутентификации я там, кстати, не вижу.
Код: 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.
35.
36.
37.
Imports System.Globalization
Imports System.Net
Imports System.Web
Imports HtmlAgilityPack

Sub DoSomething
	
	Dim html As String = DownloadPage("Андреева", 4)
	
	Dim doc As new HtmlDocument()
	doc.LoadHtml(html)
    Dim table As HtmlNode = doc.DocumentNode.Descendants("table").First()
	Dim rows As IEnumerable(Of HtmlNode) = table.Descendants("tr")
	For Each row As HtmlNode In rows
		Dim cells As IEnumerable(Of HtmlNode) = row.Descendants("td")
		For Each cell As HtmlNode In cells
			If cell.InnerText <> "" Then
				Console.WriteLine(cell.InnerText)
			End If
		Next
	Next
	
End Sub

' Define other methods and classes here
Private Shared Function DownloadPage(ByVal name As String, ByVal region As Integer) As String
	
	Dim url As String = String.Format( _
		"http://www.minfin.ru/ru/accounting/reestr_audit/auditors/index.php?fio={0}&Terr={1}8&sro=&ogrn=&orzn=&att=" _
		, HttpUtility.UrlEncode(name) _
		, region _
	)
	Dim wc As New WebClient
	wc.Encoding = Encoding.UTF8
	Return wc.DownloadString(url)

End Function



4) Можно использовать все кроме пунтка "б"
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38726462
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile,

Эту страницу привел для примера парсинга, на ней таблица похожа, а так откуда надо данные на самом деле парсить есть авторизация
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38726469
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile,

Есть такая мысль если "HttpWebResponse вернет тебе Stream. Из него ты прочитаешь строку с помощью StreamReader и получишь таким образом html код страницы", может тогда сохранить код в HTML документ, потом его загрузить в Webbrowser и после парсить или это глупо? есть более рациональные методы?
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38726474
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyВ клиентском приложении не IE, а webbrowser control, и это нормально.
Это убого и беспощадно. Нормальные люди используют веб приложения для такого случая. А скрещивать ужа и удава - архитектурная ошибка. Посмотри, как сделано в том же Гаранте. Толстое приложение использует для навигации отдельные RTF страницы с хиперлинками, собятиями и стилями. А веб приложение отдает уже честный html без всяких костылей. То, что показал ты - уныние.

AntonariyУ меня есть программа, написанная по аналогии IE, это браузер каталога документов:
На помойку.
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38726496
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ,

Посоветуй как авторизоваться параллельно два раза, чтобы куки были разные и авторизация не скидывалась и как лучше парсить используя мой код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim Tables As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("Table")
    Dim Table As HtmlElement = WebBrowser1.Document.GetElementsByTagName("Table").Item(0)
    Dim Rows As HtmlElementCollection = Table.GetElementsByTagName("tr")
    For j = 0 To Rows.Count - 1
      Dim Cels As HtmlElementCollection = Rows.Item(j).GetElementsByTagName("td")
      For i = 0 To Cels.Count - 1
        If Cels.Item(i).InnerText <> "" Then
          Dim Cel As HtmlElement = Cels.Item(i)
           
        End If
      Next
    Next


он просто на webbrowser заточен, а как его применить в другом месте не знаю(если вообще возможно) и подскажите какую прогу использовать для перехвата параметров при авторизации в браузере?
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38726512
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУПо архитектуре IE - это полноценный браузер.МСУЭто убого и беспощадно.Ты не в состоянии определиться, хорошо это или плохо? И IE и мой браузер сделаны одинаково — вебброузер в табах, кнопки вперед-назад, избранное.
МСУНормальные люди используют веб приложения для такого случая.Технических сложностей тут ноль, а их нормальность не моя забота. Заказали десктоп-приложение, получили десктоп-приложение.
МСУТолстое приложение использует для навигации отдельные RTF страницы с хиперлинками, собятиями и стилями. Именно так была сделана первая версия их программы. Запредельное говно. Не знаю, как там гарант внутри устроен, но у моих заказчиков был дельфи-клиент с bde-базой, в которой документы хранились в специальном rtf-поле. Поиск, одна из главных функций этой проги, тормозил жутко, причем база всего мегов двести.
МСУНа помойку.Программа без изменений пережила три поколения винды и офисов и пять эксплореров и все еще заказчиком используется и распространяется. Вряд ли он удостоил бы вниманием мнение неспециалиста.
...
Рейтинг: 0 / 0
Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
    #38726575
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spartak19Есть такая мысль ... может тогда сохранить код в HTML документ, потом его загрузить в Webbrowser и после парсить или это глупо? есть более рациональные методы?
Используй HtmlAgilityPack. Пример я тебе привел. Использование WebBrowser только для парсинга это стрельба из пушки по воробьям.

Spartak19подскажите какую прогу использовать для перехвата параметров при авторизации в браузере?
Во всех современных браузерах есть developer tools (клавиша f12) с помощью которых можно изучать http траффик. Если хочется отдельную программу, то советую Fiddler .
...
Рейтинг: 0 / 0
25 сообщений из 115, страница 2 из 5
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Есть два элемента Webbrowser, необходимо сохранить куки с каждого.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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