Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Отловка картинок загружаемых на сайт через Proxy


Автор: Natapro 20.11.2009, 15:10
Как сделать отловку  картинок загружаемых на сайт через Proxy есть ли код подобный ?

Автор: Natapro 21.11.2009, 12:43
Дядько Вовка, так мну всё время на Прокси отправлял для замены Картинок на сайте...
Вот решыла так помучатсо, нет желания помочь ?

Автор: diadiavova 21.11.2009, 15:40
Цитата(Natapro @  21.11.2009,  12:43 Найти цитируемый пост)
нет желания помочь ? 
Я не понял вопроса. Поэтому и не отписался.

Автор: Natapro 21.11.2009, 15:51
Ну помнишь я затрагивала темку, о замене картинок на сайте, и о кэше , 
ты сказал что это надо делать через прокси, , как-то так я поняла, вот и спрашую как это сделать

Автор: diadiavova 21.11.2009, 16:01
Цитата(Natapro @  21.11.2009,  15:51 Найти цитируемый пост)
ты сказал что это надо делать через прокси

Я сказал локальный прокси-сервер. Слово "прокси" в данном контексте само по себе не означает ровным счётом ничего(по аглецки это просто посредник). Возможности прокси-сервера зависят от того, какой именно ты используешь. Это просто софтина, у которой есть свой набор настроек. Если нужной тебе нет, то ищешь другую софтину, вот и всё. А сама ты такого не напишешь. По крайней мере пока.
http://www.google.ru/search?hl=ru&q=%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8+%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80&sourceid=navclient-ff&rlz=1B3GGGL_ruRU325RU325&ie=UTF-8&aq=h&oq=%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D0%BF%D1%80%D0%BE

Зайди хотябы по первой ссылке. посмотри, что может софтина и тд. Если надо что-то более конкретное, то есть на винграде форум по программному обеспечению, можешь там спросить.

Добавлено через 2 минуты и 1 секунду
Похоже койкаво в гугле забанили. smile 

Автор: Natapro 21.11.2009, 16:06
я одно просто непойму    
smile узас что б заменить  картинку на веб странице  в веббраузере надо стоко програм разных и т д ?
а незя такое сделать в моей программе ? что б не подключать лишнее, мне ведь надо всего лишь заменить пару картинок :( на веб странице

Автор: diadiavova 21.11.2009, 16:15
Я тебе уже сказал, что сама ты этого не напишешь. Отловить картинку относительно(!) не сложно. Проблема в том, что все остальные данные тебе придётся передавать без изменений. А та мпридётся вникать в такие механизмы, что тебе просто рано этим заниматься. А софтина и для других целей пригодится со временем. Особенно, если ты интересуешься работой с сетью.

Автор: Natapro 21.11.2009, 16:26
:( ну прям страшно надо заменить картинку на странице :( ехь, цего всё так тяжело

Автор: diadiavova 22.11.2009, 00:36
Ну если это одна картинка, то что мешает сделать как я раньше советовал...после загрузки страници просто присвоить свойству src картинки новый адрес?

Автор: Natapro 23.11.2009, 05:13
Цитата(diadiavova @  22.11.2009,  00:36 Найти цитируемый пост)
Ну если это одна картинка, то что мешает сделать как я раньше советовал...после загрузки страници просто присвоить свойству src картинки новый адрес?

а как это сделать ?

Добавлено через 4 минуты и 47 секунд
 smile 

Автор: diadiavova 23.11.2009, 12:13
Цитата(Natapro @  23.11.2009,  05:13 Найти цитируемый пост)
а как это сделать ?
Натусик. smile Ну что опять 25 что ли? Это делается точно так же как и всё остальное. Сначала получаешь ссылку на объект картинки, а потом присваиваешь её свойству новое значение. Вот к примеру у твоей картинки известен id. 
Код

<img src="image.jpg" id="badimage" />

В обработчике события DocumentCompleted пишешь следующий код для получения ссылки на эту картинку и замены изображения
Код

Dim img = WebbRowser1.Document.GetElementById("badimage")
img.DomElement.src = "адрес новой картинки"
Я уже кучу паодобного кода тебе выложил, но пока ты будешь копипастить вместо того, чтобы поппробовать разобраться как он работает, ты будешь вновь и вновь задавать подобные вопросы. Попытайся разобраться один раз и дальше сможешь всё это делать сама smile 

Автор: Natapro 23.11.2009, 21:28
2 вопроса
1) а можно ли сделать  что б документ програма обращялась к хмл документу в котором был этот код smile  если можно пример как это сделать, так как просто много страниц есть на сайте в которых надо менять по 3-4 картинки
2)можно ли не по айди а по адресу на картинку, извини за столь глупый вопрос, но не разобралась как по адресу сделать.

Автор: diadiavova 23.11.2009, 21:39
Первого вопроса я не понял. По второму всё просто: у документа есть свойство Images, возвращающее коллекцию картинок документа. Перебираешь её в цикле и проверяешь адрес, если тот, что надо - меняешь.
Код

        For Each img As HtmlElement In Me.WebBrowser1.Document.Images
            If img.DomElement.src = oldPic Then
                img.DomElement.src = newPic
            End If
        Next
oldPic и newPic - строки с адресами. Если надо менять несколько картинок, то сделай словарик, в который забей список., что на что надо менять и в каждой итерации проверяй, есть картинка в словаре или нет, если есть - меняй. Для реализации словаря используй Dictionary(Of T)

Автор: Natapro 23.11.2009, 22:24
Код

 Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        For Each img As HtmlElement In Me.WebBrowser1.Document.Images
            If img.DomElement.src = "http://neolands.ru/image/youpos.gif" Then

                img.DomElement.src = "http://neolands.ru/image/map/m_night/95_87.gif"
            End If
        Next

    End Sub

и ничего не произошло...

Автор: diadiavova 23.11.2009, 22:31
А у меня почему-то происходит, с тем же кодом.

Автор: Natapro 23.11.2009, 22:50
а можно с библиотечкой пример ? а нащьот 
Цитата(diadiavova @  23.11.2009,  21:39 Найти цитируемый пост)
Первого вопроса я не понял.
 я имела ввиду библиотечку чтоль что б она была в xml файлике..

Автор: diadiavova 23.11.2009, 22:52
Цитата(Natapro @  23.11.2009,  22:50 Найти цитируемый пост)
я имела ввиду библиотечку чтоль что б она была в xml файлике..

Какую библиотечку? Ты вообще о чём сейчас? smile 

Автор: Natapro 23.11.2009, 23:07
как нестранно ничего не помогло... 

Автор: diadiavova 23.11.2009, 23:08
как не странно - мой пример работает.

Автор: Natapro 23.11.2009, 23:17
вот и я о том же.... очень очень странно всё.. smile 

Автор: diadiavova 23.11.2009, 23:19
Цитата(Natapro @  23.11.2009,  23:17 Найти цитируемый пост)
вот и я о том же.... очень очень странно всё..

Вот ты не поверишь, но никакой магии. Раз у тебя не работает, значит ты сделала не так. Или такой картинки просто нет(в смысле адреса).

Автор: Natapro 23.11.2009, 23:37
и в самом деле странно вот на скрине я нашла адрес картинки, а в исходном коде документа неа


user posted image


Код

<HTML>
<HEAD>
<LINK href="/css/game.css" rel=STYLESHEET type=text/css>
<META Http-Equiv=Content-Type Content="text/html; charset=windows-1251">
<META Http-Equiv=Cache-Control Content=No-Cache>
<META Http-Equiv=Pragma Content=No-Cache>
<META Http-Equiv=Expires Content=0>
</HEAD>
<BODY bgcolor=#FFFFFF leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">

<table width=100% border=0 cellpadding=4 cellspacing=0 bgcolor="#f5f5f5">
<tr valign="middle" class="hed"><td>
<table cellpadding=0 cellspacing=0 border=0>
<tr><td><table border=0 cellpadding=0 cellspacing=0 bgcolor="#f5f5f5">
<tr>
  <td rowspan=3><font class=nickname><img src=/image/1x1.gif width=5 height=1><img src=/image/clans/sc/2.gif width=15 height=12 align=absmiddle><img src=/image/1x1.gif width=2 height=1><img src=/image/clans/c1.gif width=14 height=14 align=absmiddle alt="Scorpions " title="Scorpions()"><img src=/image/1x1.gif width=3 height=1><b>Программистка</b> [ 10 ]&nbsp;</font></td><td><table width="200" border="0" cellpadding="0" cellspacing="0" onMouseOver="shp();" onMouseOut="nshp();nd();"><tr><td height="5" background="/image/nohp.gif"><img src="/image/hp.gif" name=hp height="5" vspace="0" /></td></tr><tr><td height="5" background="/image/nohp.gif"><img src="/image/mp.gif" name=mp height="5" vspace="0" /></td></tr><tr><td height="5" background="/image/nohp.gif"><img src="/image/ust.gif" name="energy" height="5" vspace="0" /></td></tr></table></td>
</table></td><td><div id=trawm>&nbsp;</div></td></tr></table>
</td><td>
    <div align=center id="h_button"  >
    <input type="button" class="hbutton" onClick="javascript:location='main.php?get=0&scod=ab0c22f217ac549dddd90ce00809f21e'" value="Персонаж"> 
    <input type="button" class="hbutton" value="Инвентарь" onClick="javascript:location='main.php?get=1&scod=468b395da6954af4b227f3d013aaee8f'"> 
      </div></td><td><div align=right><input type="button" class="hbutton" id="button" onClick="javascript:top.exit();" value="&nbsp;X&nbsp;"></div></td></tr></table>
<table width=100% border=0 cellpadding=0 cellspacing=0 bgcolor="#f5f5f5">
<tr><td><img src=/image/1x1.gif width=1 height=2></td></tr>
<tr><td bgcolor=#CCCCCC><img src=/image/1x1.gif width=1 height=1></td></tr>
<tr><td bgcolor=#999999><img src=/image/1x1.gif width=1 height=1></td></tr>
<tr><td bgcolor=#CCCCCC><img src=/image/1x1.gif width=1 height=2></td></tr>
</table>
<script src="/js/ipr.js"></script>
<script>var aff=[1259008248,''];</script>
<script type="text/javascript" src="js/hels.js?1"></script>
<div id="wind"></div>
<script>HP(394.67923696,406,10,10,58.6608152289,63,671,3237,4741);</script>
<script src="/js/map.js"></script>
<script>
var coord=[95,86];var secur="67a60682bb1c2593dba05d1e227d8902";
var pos =['94_85','94_86','95_85','96_85'];
var delay =[30,30,30,30];
var dat=[0,58,0,1];
var d=document;
var av=[];var lo_but='  <div><img src="/image/1x1.gif" width="1" height="1" /></div>  <input type="button" class="locbut" onClick="location=\'main.php?id_get=23&scod='+secur+'\'" value="Оглядеться"/><div><img src="/image/1x1.gif" width="1" height="1" /></div>';
var add=[["Фауна",'<font class=sred>Живность не найдена</font>'],["Флора",'<font class=sred>Полезные растения не найдены</font>'],["Ресурсы",'<font class=sred>Ресурсы не найдены</font>']];
mapview();
function act(get,form,ty,age,sec){
var forma='<img src="./func/?PHPSESSID=5aaad35b81bcb9121f5b7b4b74451d4c"><br><img src="/image/1x1.gif" width="1" height="2" /><br><input name="cap" id=cap type="text" size="4" maxlength="4" class="hinp"/> <input name="num" id=num type="text" size="2" maxlength="2" class="hinp" value=1> <input name="action" type="button" value=" ОК " class="hbuttonmini" onClick="run('+get+','+ty+','+age+',\''+sec+'\')"/> <input type="button" class="hbuttonmini" onClick="location=\'main.php\'" value=" x "/>';
$(form).innerHTML=forma;
}

</script>
<script src="js/counter.js"></script>
</BODY>
</HTML>

Автор: diadiavova 23.11.2009, 23:42
У тебя там подключена куча скриптов и они могут генерить контент динамически

Добавлено через 6 минут и 8 секунд
И кстати изображения могут через стиль отображаться(background-image)

Автор: Natapro 23.11.2009, 23:55
 smile и сьо делать ? smile 

Автор: diadiavova 24.11.2009, 00:00
Сначала попробуй приведённый код запускать не сразу после загрузки страницы, а по нажатию кнопки например. Возможно рисунок подгружается уже после того, как отработает событие документкомплитед

Автор: Natapro 24.11.2009, 00:05
хм ся попробую идея smile

Добавлено через 5 минут и 28 секунд
неа не помогает.... smile 

Автор: diadiavova 24.11.2009, 00:29
Ну не знаю, я не видел ту страницу, так что сказать ничего не могу. Там вариантов масса. Надо изучать страницу просто и всё.

Автор: Natapro 24.11.2009, 01:07
а можешь взглянутЬ ? на страничку ?

Автор: diadiavova 24.11.2009, 13:19
На неё не взглянуть надо, а изучать. Учись анализировать документы.

Автор: Natapro 24.11.2009, 14:58
 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)