powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Добраться до ссылок на сайте
30 сообщений из 30, показаны все 2 страниц
Добраться до ссылок на сайте
    #38156693
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Dim oHttp As Object
    Dim strURL As String
    
    strURL = "http://betcityru.com/"
    
    On Error Resume Next
    Set oHttp = CreateObject("MSXML2.XMLHTTP")
    If Err.Number <> 0 Then
        Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
    End If
    On Error GoTo 0
    If oHttp Is Nothing Then
        MsgBox "Не удалось инициализировать объект MSXML!"
        Exit Sub
    End If
    
    oHttp.Open "GET", strURL, False
    oHttp.send
    
    Debug.Print oHttp.responseText
    Set oHttp = Nothing
    MsgBox "Данные успешно импортированы!", vbInformation


С помощью этого кода пытаюсь получить HTML код страницы
Получаю

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<html><head><title>BetCity - букмекерская компания</title>
<meta name="keywords" content="betcity,бетсити,букмекерская,букмекер,бк,букмекерская компания,букмекерская контора,ставки,спорт,результаты,live результаты,live ставки,чемпионат,футбол,теннис,хоккей,on-line,sports,soccer,hockey,basketball,tennis">
<meta name="page-topic" content="sports">
    <script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-120364-1");
pageTracker._trackPageview();
} catch(err) {}</script>
    </head>
<frameset rows="112,*,38" border="0">
<frame name="btop" src="top.php" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>
<frame name="center" src="center.php" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>
<frame name="bottom" src="bottom.php" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>
</frameset></html>


но если кликаю ПКМ по стринице и "Показать HTML код", то вижу совсем другое:

Код: html
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.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
<html>
<head>
	<title>BetCity</title>
	<meta HTTP-EQUIV="Content-Type" content="text/html; charset=windows-1251"><base target="left">	<link rel="stylesheet" href="/bets2.css?v5" type="text/css" media="all" />
		<script language="JavaScript">
		<!--
		//rs
		top.frames['btop'].tabsh("mbets");
				if (parent.left.document.getElementById('fjsce') != null) parent.left.showQuick();if (parent.left.document.getElementById('fjsce') != null) parent.left.showFS("3,5,20,39,12,8,47,73,38,46,35,13,2,1,19,7,36,17,10");		function shdop(idd, col) {
			id = "content";
			if (document.getElementById('tr'+idd).style.display=='') {
				document.getElementById('d'+idd).innerHTML = '<b style="color:#CC3333;">+'+col+'</b>';
				document.getElementById('tr'+idd).style.display = 'none';
			}
			else {
				document.getElementById('d'+idd).innerHTML = '<b style="color:#CC3333;">-'+col+'</b>';
				if (document.getElementById('td'+idd).innerHTML=='') {
					url = "/dop.php?line_id="+idd+"&rand="+Math.random();
					if (document.layers) {
						var lyr = document.layers[id];
						lyr.load(url,lyr.clip.width);
					}
					else if (document.getElementById) document.getElementById('hf').src = url;
					else if (document.all) parent.HiddenFrame.document.location = url;
				}
				else document.getElementById('tr'+idd).style.display = '';
			}
		}
		function shodop(id) {
			document.getElementById('td'+id).innerHTML = window.frames['hf'].document.getElementById('body').innerHTML;
			document.getElementById('tr'+id).style.display = '';
		}
		function mo(id) {
			id.style.cursor = 'hand';
		}
		function so(swn,url) {
			window.open(url, swn, 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=yes,resizable=no,width=590,height=500');
			return false;
		}
		function sog(swn,url) {
			window.open(url, swn, 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=yes,resizable=yes,width=770,height=500');
			return false;
		}
		function al () {
			alert('Чтобы сделать ставку, необходимо зарегистрироваться или воспользоваться "гостевым входом"'); return false;
		}
		//-->
	</script>
	
	<style type="text/css">
		.chead .th td{text-transform: uppercase;}
		.tblH .th td{text-transform: uppercase;}
		#dt .tdh{text-transform: uppercase;}
	</style>
</head>
<body topmargin=0 bgcolor=#ffffff rightmargin="3" leftmargin="3">
<iframe id="hf" name="hf"
		style="position: absolute; visibility: hidden; width: 0px; height: 0px; left: -100; top: -100px;"></iframe>
<div id=content></div>
<a name=top></a>
<table width=100% cellspacing=0 cellpadding=3 border=0>
	<tr>
		<td class="dmenu2" bgcolor="#EAF6FF"> <b>ставки</b></td>
	</tr>
</table>

	<table cellspacing=2 cellpadding=1 width=100%><thead><tr><td align="left" colspan="13"><b><a name=c14287></a>Баскетбол. NCAA.</b></td></tr></thead><tbody class=date><tr><td colspan="13">19.02.2013</td></tr></tbody><tbody class="chead"><tr class="th"><td nowrap>время</td><td nowrap>Команда 1</td><td nowrap>фора</td><td nowrap>кф</td><td nowrap>Команда 2</td><td nowrap>фора</td><td nowrap>кф</td><td nowrap><b>1</b></td><td nowrap><b>2</b></td><td nowrap>Тотал</td><td nowrap>мен</td><td nowrap>бол</td><td>ДОП</td></tr></tbody><Tbody id="line"><Tr class="tc"><td>06:00</td><td><b>Вилланова</b></td><td><b>  -10.5</b></td><td><a href="/left.php?bb=1806799.4" onClick="return parent.left.db('1806799.4');">1.90</a></td><td><b>Ратгерс</b></td><td><b>  +10.5</b></td><td><a href="/left.php?bb=1806799.5" onClick="return parent.left.db('1806799.5');">1.90</a></td><td><a href="/left.php?bb=1806799.1" onClick="return parent.left.db('1806799.1');" class=red>1.14</a></td><td><a href="/left.php?bb=1806799.2" onClick="return parent.left.db('1806799.2');" class=red>5.70</a></td><td><b> 130.5</b></td><td><a href="/left.php?bb=1806799.6" onClick="return parent.left.db('1806799.6');">1.90</a></td><td><a href="/left.php?bb=1806799.7" onClick="return parent.left.db('1806799.7');">1.90</a></td><Td id="d1806799" onmouseover="mo(this);" onclick="shdop('1806799','1');"><b style="color:#CC3333">+1</b></td><td><a href="/mstat.php?p=14287:12604:43987:1806799" onclick="return so('s1806799', '/mstat.php?p=14287:12604:43987:1806799');" target="s1806799"><img src="/img/stat_ico.gif" border=0 alt="Статистика"></a></td></tr><tr id="tr1806799" style="display:none;"><td id="td1806799" colspan=13 class="tcd"></td></tr></tbody><Tbody id="line"><Tr class="tc1"><td>06:00</td><td><b>Канзас Ст.</b></td><td><b>  -10.5</b></td><td><a href="/left.php?bb=1806794.4" onClick="return parent.left.db('1806794.4');">1.90</a></td><td><b>Зап. Вирджиния</b></td><td><b>  +10.5</b></td><td><a href="/left.php?bb=1806794.5" onClick="return parent.left.db('1806794.5');">1.90</a></td><td><a href="/left.php?bb=1806794.1" onClick="return parent.left.db('1806794.1');" class=red>1.14</a></td><td><a href="/left.php?bb=1806794.2" onClick="return parent.left.db('1806794.2');" class=red>5.70</a></td><td><b> 127.5</b></td><td><a href="/left.php?bb=1806794.6" onClick="return parent.left.db('1806794.6');">1.90</a></td><td><a href="/left.php?bb=1806794.7" onClick="return parent.left.db('1806794.7');">1.90</a></td><Td id="d1806794" onmouseover="mo(this);" onclick="shdop('1806794','5');"><b style="color:#CC3333">+5</b></td><td><a href="/mstat.php?p=14287:27112:12603:1806794" onclick="return so('s1806794', '/mstat.php?p=14287:27112:12603:1806794');" target="s1806794"><img src="/img/stat_ico.gif" border=0 alt="Статистика"></a></td></tr><tr id="tr1806794" style="display:none;"><td id="td1806794" colspan=13 class="tcd1"></td></tr><tr><td colspan=13 class="t_comment1">Виасат Спорт</td></tr></tbody></table><div align="right"><a href="#cc" class="btnIndex" target="_self">оглавление</a></div><br></td>
</tr>
</table>
<br>
<br>
<div class="bottomElements">
	<a name=cc></a>
	<a href=#c14287 style="color: #006699" target="_self">Баскетбол. NCAA.</a><br></div>

<a href="#top" class="a btnGoTop" target="_self">наверх</a>
	
<table width=100% cellspacing=0 cellpadding=0>
	<tr>
		<td>		</td>
	</tr>
</table>
<br><br>
</body>
</html>



Вопрос: как добраться до нужного мне кода программно? Конечная цель: выбрать все ссылки и организовать клик по некоторым ссылкам.
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38156725
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
strURL = "http://betcityru.com/main2.php"
...

dim html, link, k&
html = createobject("htmlfile")
html.write oHttp.responsetext

k = 0
for each link in html.links
    k = k +1
    debug.print k, link.outerhtml

    ' put Your "somelink-loop" code here

next link

...

set html = nothing

...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38159964
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Ещё не то, но уже есть подвижки. Теперь хоть выбрало ссылки не со стартовой страницы.
Как выбрать ссылки из нужной мне страници зоны уже буду думать.
Выбирает нужные мне ссылки при адресе
strURL = " http://betcityru.com/livebetssh.php"
Теперь понять бы как послать клик на ссылку.
Возможно?
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38159984
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> alex77755,
> Теперь понять бы как послать клик на ссылку.

Зачем "посылать клик", да ещё и "на ссылку" ? Чем не угодил MSXML2.XMLHTTP.SEND ?
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38160722
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению я только начал изучать это направление и не смог пока найти хорошего справочника с примерами работы.
В тех примерах, что нашёл такого не было.
Как нажать на кнопку нашел(и то пока не могу применить):
Код: vbnet
1.
WB.Document.getElementsByTagName("Input").Item(2).InvokeMember ("Click")


Кликнуть по ссылке(тоже не получается) в примере у ссылки был индекс, У меня ID всех ссылок при просмотре объекта =""
Код: vbnet
1.
 WebBrowser1.Document.links(cur).Click


Воспользовавшись вашей подсказкой Решил сначала сделать автоматический вход.
Но опять не могу понять как связать.
Если делаю так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
   strURL = "http://betcityru.com/top.php"
   Set oHttp = CreateObject("MSXML2.XMLHTTP")
   oHttp.Open "GET", strURL, False
   oHttp.send
   WB2.Document.body.innerHTML = oHttp.responseText
   WB2.Document.Forms(0).Item("login").Value = LOG
   WB2.Document.Forms(0).Item("pwd").Value = PAR


То во втором контроле открывается только фрагмент(не знаю как его правильно назвать. часть станицы)
Поля нашёл и заполнил. Клик по кнопке не посылал, по тому, что при ручном клике открывается просто обозреватель, а не в моём контроле.
А мне надо проделать всё это с главной страницы " http://betcityru.com", а не с " http://betcityru.com/top.php"
Вот как произвести регистрацию на " http://betcityru.com"?
если поля для логина и пароля находятся на " http://betcityru.com/top.php"?

Про MSXML2.XMLHTTP.SEND буду гуглить
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38161113
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> alex77755,
> Про MSXML2.XMLHTTP.SEND буду гуглить

O_O Вы же его уже используете:
Код: vbnet
1.
2.
3.
   Set oHttp = CreateObject("MSXML2.XMLHTTP")
   oHttp.Open "GET", strURL, False
   oHttp.send



Авторизация:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
   strURL = "http://betcityru.com/top.php"
   ' если необходимо безопасное соединение, то
   ' strURL = "https://betcityru.com/top.php"

   Set oHttp = CreateObject("MSXML2.XMLHTTP")
   oHttp.Open "POST", strURL, False

   Dim param
   param = "login=" & {YOUR_LOGIN} & "&psw=" & {YOUR_PASSWORD}

' rem метод и параметры взяты из исходного кода страницы http://betcityru.com/top.php ( под спойлером )
   oHttp.Send param

   ' обрабатываете ответ сервера
   ' ...

форма
Код: html
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.
38.
39.
<form method="post" 
target="btop" id="loginForm" action="http://betcityru.com/top.php"><table width=100% border=0 cellspacing=0 cellpadding=0><tr><td width="212"><a href="/" target="_top"><img src="img/logoru.gif" border="0"></a></td>
    <td><table width=100% height=68 border=0 cellspacing=0 cellpadding=0><tr><td width="5"><script type="text/javascript"><!--
document.write("<img src='http://counter.yadro.ru/hit?r"+
    escape(top.document.referrer)+((typeof(screen)=="undefined")?"":
    ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
        screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
    ";"+Math.random()+
    "' width=1 height=1 alt=''>")//--></script>
    </td><td width="246" align="left"><table width=100% cellspacing=0 cellpadding=0 border=0><tr><td width="103" nowrap><font color="#C7E1F5"><b>Логин</b></font><br>
<input id="st" type="text" name="login" size="12"><img src="/img/p.gif" width=1 height=18 height=1  style="position: relative; top: 5px; margin-top: -3px;" border=0></td><td width="10"><img src=img/p.gif width=10 height=1 border=0></td><td width="146" nowrap><font color="#C7E1F5"><b>Пароль</b></font><br>
<input id="st" type="password" name="pwd" size="12"> <input type="image" src="/img/submit.gif" style="position: relative; top: 5px; margin-top: -3px;" width="18" height="18" border="0"></td></tr><tr><td width="103" nowrap><a href="/user/register.php">Регистрация</a></td><td width="10"><img src="/img/p.gif" width=10 height=1 border=0></td><td width=""><a href="#" onClick="window.open('/lost.php', '', 'scrollbars=no,resizable=yes,width=400,height=200'); return false;">Забыли пароль?</a></td></tr></table><input type="checkbox" id="https" onclick="changeAction(this)" onchange="changeAction(this)" name="https" style="border: none;" value="1" checked="checked" /> <label for="https"> <a>безопасное соединение</a>
</label>
    
</td>
<td width="7"> </td>
<td width="25"></td>
<td width=50> </td>
<td width=150 align="center">
    </td><td width=150 align="center"></td><td width=170 align="center"><table width="150" height="50" border=0 bgcolor="#CC3333"><tr><td align="center" bgcolor="#2274B0"><a href="/toto/" class=a target="middle"><font color=#ffffff class=mmenu>Тотализатор</font></a></td></tr></table></td><td width=150 align="center"><table width="150" height="50" border=0 bgcolor="#CC3333"><tr><td align="center" bgcolor="#2274B0"><a href="/pays.php#ecocard" title="Пополнение пластиковыми картами" class=a target="middle"><font color=#ffffff class=mmenu>Пополнение пластиковыми картами</font></a></td></tr></table></td><td> </td><td align="left" width="35"> </td></tr></table>
    <table style="margin: 0px; padding: 0px;width: 100%;" cellspacing=0 cellpadding=0 border=0>
        <tr>
            <td valign="top" align="right" class="btll"><ul id="barnav1"><li><a id="mstats" href="/stats.php">статистика</a></li><li><a id="mrules" href="/rules.php">правила приёма ставок</a></li><li><a id="mlive" href="/live/results.php">live</a></li><li><a id="mresults" href="/results/">результаты</a></li><li><a id="mbets" target="middle" href="/bets/bets.php">список ставок</a></li><li><a id="mmain" href="/main2.php">главная</a></li></ul></td><td width="10" valign="bottom" class="btl"> </td></tr><tr><td valign="bottom" align="right" class="bll" style="position: relative;">        <ul id="barnav2">
            <li><a id="mhowbet" href="/how-bet.php" >как делать ставки</a></li>
            <li><a id="mnews" href="/news.php" >новости</a></li>
            <li><a id="mabout" href="/about.php" >о компании</a></li>
            <li><a id="mpays" href="/pays.php" >расчёты</a></li>
                        <li><b>|</b></li>
            <li class="lng">
                <span class="cur"><img src="/img/flg/flag_ru_3.gif">ru</span>(<a href="#" id="chlng">Выбор языка</a>)
            </li>

                    </ul>
        <div id="switchlang"><a href="/lngswitch.php?lang=ru" class=sel><img src="/img/flg/flag_ru_3.gif" alt="ru">ru</a><a href="/lngswitch.php?lang=en" ><img src="/img/flg/flag_en_3.gif" alt="en">en</a><a href="/lngswitch.php?lang=mk" ><img src="/img/flg/flag_mk_3.gif" alt="mk">mk</a><a href="/lngswitch.php?lang=es" ><img src="/img/flg/flag_es_3.gif" alt="es">es</a><a href="/lngswitch.php?lang=de" ><img src="/img/flg/flag_de_3.gif" alt="de">de</a><a href="/lngswitch.php?lang=cn" ><img src="/img/flg/flag_cn_3.gif" alt="cn">cn</a><a href="/lngswitch.php?lang=fr" ><img src="/img/flg/flag_fr_3.gif" alt="fr">fr</a><a href="/lngswitch.php?lang=it" ><img src="/img/flg/flag_it_3.gif" alt="it">it</a><a href="/lngswitch.php?lang=pt" ><img src="/img/flg/flag_pt_3.gif" alt="pt">pt</a><a href="/lngswitch.php?lang=az" ><img src="/img/flg/flag_az_3.gif" alt="az">az</a><a href="/lngswitch.php?lang=rs" ><img src="/img/flg/flag_rs_3.gif" alt="rs">rs</a><a href="/lngswitch.php?lang=cz" ><img src="/img/flg/flag_cz_3.gif" alt="cz">cz</a><a href="/lngswitch.php?lang=hr" ><img src="/img/flg/flag_hr_3.gif" alt="hr">hr</a><a href="/lngswitch.php?lang=hu" ><img src="/img/flg/flag_hu_3.gif" alt="hu">hu</a><a href="/lngswitch.php?lang=pl" ><img src="/img/flg/flag_pl_3.gif" alt="pl">pl</a><a href="/lngswitch.php?lang=bg" ><img src="/img/flg/flag_bg_3.gif" alt="bg">bg</a><a href="/lngswitch.php?lang=ro" ><img src="/img/flg/flag_ro_3.gif" alt="ro">ro</a><a href="/lngswitch.php?lang=si" ><img src="/img/flg/flag_si_3.gif" alt="si">si</a><a href="/lngswitch.php?lang=tr" ><img src="/img/flg/flag_tr_3.gif" alt="tr">tr</a><a href="/lngswitch.php?lang=kz" ><img src="/img/flg/flag_kz_3.gif" alt="kz">kz</a></div>
</td><td width="10" valign="bottom" class="bl"> </td></tr></table>
</td>
</tr>
</table>
</form>

...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38161341
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор обрабатываете ответ сервера
Вот с этим тоже непонятка: Что значит обрабатывайте ответ?
После исполнения oHttp.Send param
У объёкта oHttp Появился Массив(коллекция): responseBody : Variant/Byte(0 to 12030)
и пустой responseStream : Variant/<Неподдерживаемый тип объекта>
12030 каких-то цифр.
Я рассчитывал внести логин и пароль и нажать кнопку "Вход" и после этого зашёл бы на сайт
Т.е. на форме WebBrowser1(WB)
Код: vbnet
1.
2.
Private Sub Form_Load()
WB.Navigate "http://betcityru.com/"


После загрузки сайта я не авторизован. Хочу авторизоваться по нажатию кнопки.
Как будет выглядеть процедура?
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38161381
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755,
про responsetext забыли.
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38161396
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот до чего я мог додуматься?
Код: vbnet
1.
2.
3.
   WB2.Document.body.innerHTML = oHttp.responseText
   WB2.Document.Forms(0).Item("login").Value = LOG
   WB2.Document.Forms(0).Item("pwd").Value = PAR


Я же об этом уже писал. Загружаю текст во второй контрол. В этом контроле я могу запонить логин и пароль.
Но это же не вся страница, а только её часть. Которая открывается при strURL = " https://betcityru.com/top.php"
А мне надо ввести логин и пароль при открытой странице strURL = " https://betcityru.com"
А так в oHttp.responseText нет полей логина и пароля
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38161414
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помоги с кодом как авторизоваться.
Ну никак не догоню как из кусков собрать до кучи всё
В примере авторизации "В контакте"
Код: vbnet
1.
2.
3.
WebBrowser1.Document.All.Item("email").Value = "твой логин" 'заполнение поля с логином
WebBrowser1.Document.All.Item("pass").Value = "твой пароль" 'заполнение поля с паролем
WebBrowser1.Document.All.Item("quick_login_button").Click 'клик по кнопке


Поля ввода находятся на главной странице, А у меня не пойму как ввести
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38161423
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755,
13962424 .
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38161446
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, что хоть к Гуглу не послал!
Если б я разобрался, то не продолжал бы задавать вопросы 13963080 |> http://%5Bmsg=13963080]]
Страница, где бы я был авторизован не открывается!
И вообще после запроса ничего не происходит. Неужели после того как сказал "А" трудно сказать "Б"?
Чуствую, что кручусь где-то рядом, а понять не могу
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38161523
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755,
плохой из меня объясняльщик :((
Непонимание возникло из-за того, что я ?предлагаю использовать только объект MSXML2.XMLHTTP
( если не требуется визуализация "как в браузере", то его одного вполне достаточно )
Вы же используете ещё и WebBrowser.
Код: 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.
   REM у меня вряд-ли получится объяснить как-то лучше 

   strURL = "http://betcityru.com/top.php"
   ' если необходимо безопасное соединение, то
   ' strURL = "https://betcityru.com/top.php"

   Set oHttp = CreateObject("MSXML2.XMLHTTP")
   oHttp.Open "POST", strURL, False

   ' параметры для авторизации, в данном случае только логин и пароль в открытом виде
   Dim param
   param = "login=" & {логин} & "&psw=" & {пароль}

   ' отправляем запрос
' rem метод и параметры взяты из исходного кода страницы http://betcityru.com/top.php
   oHttp.Send param

   ' обрабатываете ответ сервера
   dim s$, sHeaders$
   
   ' все заголовки ответа на зарос
   ' при удачной аворизации - в одном/ или нескольких из них
   ' будут параметры для ...?? слово забыл :(( следующих запросов в рамках данной сессии
   sHeaders = oHttp.getAllResponseHeaders
   
   ' ответ на запрос в текстовом виде
   ' что с ним делать - это уже зависит от
   s = oHttp.responsetext

   ' можно, например,  в браузер "залить" и просмотреть
   ' методы .Clear и .Write написал условно - т.к. не знаю с экземпляром какого класса работаете
   ' 
   WebBrowser1.Document.Clear
   WebBrowser1.Document.Write s

...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38161578
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Буду разбираться.
Чтобы была понятна суть:
На форме WebBrowser. Да нужна визуализация.
И при запуске программы броузер сразу заходит на страницу " http://betcityru.com/"
На сайте нужно авторизоваться, чтобы работать дальше. Поля для ввода логина и пароля находятся на " http://betcityru.com/top.php".
Но если загрузить в броузер эту строку, то откроется только часть страницы. И если там ввести логин и пароль и нажать вход, то открывается новый экземпляр обозревателя, а не в моём контроле. А мне надо ввести логин и пароль и нажать кнопку именно когда открыта осносная страница. Потому, что потом выбирается игра, ставки которой отображаются так же в части основной страницы.
И мне надо выбрать ссылки уже из " http://betcityru.com/livebetssh.php" или из " http://betcityru.com/bets2.php". (тут ещё надо будет разобраться какие игры на каком участке находятся). Ссылки, в принципе получалось выбирать. И вот их уже отобранные и отсортированные я заливал во второй Броузер. Но вся проблема в том, что ссылки(относительные) и ссылаются на часть страницы в основном обозревателе
Код: html
1.
<a href="/left.php?bb=1792354.4" onClick="return parent.left.db('1792354.4');">1.98</a>

. Я ещё не разобрался что делает onClick. Получается при щелчке осуществляется переход на "/left.php" и вызывается функция с передачей аргумента. А первое применение кода? bb=1792354.4 Типа назначение переменной?
Вот задача и стит так: запустить в WebBrowser страницу. Авторизоваться на ней и потом после выбора какой-то игры выбрать ставки. обработать их. показать где-то(показывал просто в гриде или в другом WebBrowser формируя и заливая в него код).
Но самое главное - обеспечить обратную совместимость: что-бы клик по ссылке во втором бруузере или по ячейке грида с нужной мне ставкой вызывал такуюже реакцию как и клик по ставке на основном WebBrowser.
Фуф. не знаю понятно ли описал задачу
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38161619
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал ваш код: немного не то, что мне надо.
После заливки
Код: vbnet
1.
WebBrowser1.Document.Write s


Я получаю окно, которое я могу получить прямой навигацией:
Код: vbnet
1.
WebBrowser1.Navigate "http://betcityru.com/top.php"


И здесь я могу ввести программно и логин и пароль. Об этом я писал выше
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38161626
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно натравить на это дело Fiddler2 и посмотреть, что за запросы отправляются при авторизации. потом все это автоматизировать.
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38161636
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот с этого места поподробней, пожалуйста
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38161639
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скачал утилитку. Установил. Русской нет такой? А то врядли смогу разобраться, что там она выдаёт и как это можно использовать
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38161654
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755Попробовал ваш код: немного не то, что мне надо.
После заливки
Код: vbnet
1.
WebBrowser1.Document.Write s


Я получаю окно, которое я могу получить прямой навигацией:
Код: vbnet
1.
WebBrowser1.Navigate "http://betcityru.com/top.php"


И здесь я могу ввести программно и логин и пароль . Об этом я писал вышеПо идее, Вы УЖЕ авторизировались.
Что при этом в переменной sHeaders ?
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38162374
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
   Debug.Print sHeaders



Server: nginx
Date: Fri, 22 Feb 2013 11:04:43 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
P3P: policyref=" http://betcityru.com/w3c/p3p.xml", CP="NON DSP ADM DEV PSD IVDo OUR IND STP PHY PRE NAV UNI"
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38163829
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПо идее, Вы УЖЕ авторизировались.
Ну наверное не совсем. По крайней мере в моём WebBrowser1 этого не видно.
И реакция на клики по ссылкам подтверждает, что не авторизован.
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38164363
\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
\
Гость
alex77755,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
   strURL = "http://betcityru.com/top.php"
   Set oHttp = CreateObject("MSXML2.XMLHTTP")
   oHttp.Open "POST", strURL, False
   Dim param
   ' вместо {логин} и {пароль} передаёте Ваши логин и пароль для авторизации на betcityru.com
   param = "login=" & {логин} & "&psw=" & {пароль}
   oHttp.Send param
   
   Debug.Print oHttp.getAllResponseHeaders

   ' получаете такие же заголовки, 
   ' как Вы указали в [msg=13967383] http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1005666&msg=13967383  ?

...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38164510
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас на 1 строку больше:
Server: nginx
Date: Mon, 25 Feb 2013 08:44:33 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
P3P: policyref=" http://betcityru.com/w3c/p3p.xml", CP="NON DSP ADM DEV PSD IVDo OUR IND STP PHY PRE NAV UNI"
Set-Cookie: PSF=39e670ec99aa50ce013b5f9c4f916dab; path=/ этой не было
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38164693
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755,
в последующие запросы добавляете в печеньки то, что вам прислал сервер в заголовке Set-Cookie, и будет Вам щасте.
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38165222
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял это необязательный параметр запроса:
PostData - необязательный. Позволяет передать на Web-сервер данные, полученные в результате заполнения формы
И строка навигации будет выглядеть как-то так:
Код: vbnet
1.
WebBrowser1.Navigate MyURL, , , MyPostData


Но не нашёл пока в каком формате это должно выглядеть. Пробовал по разному:
Код: vbnet
1.
2.
3.
4.
5.
param = "Set-Cookie: PSF=39e670ec99aa50ce013b5f9c4f916dab; path=/"
param = "PSF=39e670ec99aa50ce013b5f9c4f916dab; path=/"
param = "39e670ec99aa50ce013b5f9c4f916dab; path=/"
'С дальнейшим:
WB.Navigate STrurl, , , param


Не авторизуется.
Как эти печеньки употреблять?
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38165690
сккотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755,
печеньки==cookies
Код: vbnet
1.
2.
rem PSF=39e670ec99aa50ce013b5f9c4f916dab <-- "тикет" для данной сесии
rem path=/" <-- указание (?серверу) перенаправить на "корневую" страницу - http://betcityru.com


Если используете этот WebBrowser Object , то
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
   strURL = "http://betcityru.com/top.php"
   Set oHttp = CreateObject("MSXML2.XMLHTTP")
   oHttp.Open "POST", strURL, False
   Dim param
   ' вместо {логин} и {пароль} передаёте Ваши логин и пароль для авторизации на betcityru.com
   param = "login=" & {логин} & "&psw=" & {пароль}
   oHttp.Send param

dim sAddnHdrs$
sAddnHdrs = oHttp.getResponseHeader("Set-Cookie")

' не знаю, как правильно Cookies: или Cookies=
sAddnHdrs$ = "Cookies: " & sAddnHdrs

' описание объекта http://msdn.microsoft.com/en-us/library/aa752093%28v=vs.85%29.aspx
' object.Navigate(url, Flags, TargetFrameName, PostData, Headers) 
WB.Navigate "http://betcityru.com", , , , sAddnHdrs

' ЗЫ: если Вам "от начала и до конца" нужна визуализацияв браузере, 
'       то можно не мучить себя непонятным MSXML2.XMLHTTP с его хидерами и прочими, 
'       а везде испльзовать WebBrowser ( останется только его объектную модель немного изучить )

...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38165939
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища , спасибо за стремление помочь!
Но кажется я стал походить на американца:
Задорнов: "Мы с этими америкацами ДВА МЕСЯЦА! на чистом английском разговариваем, а они ничего не понимают! Ну тупые!!"
Столько разных было вариантов проб, что уже не помню как получилось, что в Debug.Print oHttp.getAllResponseHeaders появлялась строка с Set-Cookie: Теперь её нет. И соответственно авторизация не проходит. Блин!! Да что ж я такой "американец".
Беру потом прямо из кода назначения param копипаст логин и пароль в поля ввода. Ввод, авторизация!(уже проверял: может не правильно забил в код логин и пароль?).
Нарочно не придумашь! Пока писал ответ сходил позавтракать. Программа была выключена.
F8 по шагам. в дебаггере есть строка с Set-Cookie:!? и вход прошёл. Одно смущает: Пока вход не проходил и я делал ручной вход, то даже при sAddnHdrs = oHttp.getResponseHeader("Set-Cookie")="" вход осуществлялся. Попадалось раньше, что данные хранятся в КЕШ.
Но не совсем вьехал в тему. И раньше замечал, что иногда при повторном входе авторизация происходит автоматом, а иногда нет. Как всё не стабильно в этой системе. Почему из десяти раз только один раз появилась строка с Set-Cookie:!?. Как это можно стабилизировать и привести к однозначности?
Назначения сделал так:
Код: vbnet
1.
2.
sAddnHdrs$ = "Cookies:= " & sAddnHdrs
WB.Navigate "http://betcityru.com", , , sAddnHdrs ' PostData 4 параметр, а не 5


Ну вот опять: простояла выключенной пару минут. запустил не по шагам.
Строки в дебаггере с Set-Cookie нет, sAddnHdrs ="", а вход осуществлён!
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38165955
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755,
у меня sAddnHdrs - не "данные POST", а "дополнительные заголовки" ( пятый параметр ).

То что у Вас некоторые запросы пролазят без авторизации - действительно заслуна кэша.
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38166201
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex77755Скачал утилитку. Установил. Русской нет такой? А то врядли смогу разобраться, что там она выдаёт и как это можно использовать
да там и разбираться то нечего. запустить Fiddler2, потом Tools -> Fiddler Options -> HTTPS -> отметить CAPTURE HTTPs CONTENT и DECRYPT HTTPS Traffic -> OK, и вперед шариться по сайтам в браузере.
к примеру, если пойти по интересующему адресу, пройти авторизацию, то в Fiddler слева будут видны отправленные запросы, по клику на запрос, справа можно будет увидеть детали: Header, тип POST/GET, параметры, ответ, куки и всю прочую лабуду.
потом, это все можно автоматизировать в VB.
...
Рейтинг: 0 / 0
Добраться до ссылок на сайте
    #38167128
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем после того как я вышел из сайта кнопкой выход вход перестал осущесляться но и по запросу с параметрами строка с куками не формировалась. После 2 часов перерыва по F8 с большими паузами прошёл запрос и строка кукис в списке появилась(один раз), но авторизация не прошла. запустил Fiddler и попытался разобраться: И о чудо: строка появилась
Set-Cookie: PSF=554fb518387d8c713bbec3a9ebf4e1e6; path=/. Авторизация не прошла естественно. Сделал ручную авторизацию.
По интуиции решил сравнивать запросы на строках с http://betcityru.com/top.php.
Там много что отличается, но я подумал, что мне надо параметры запроса(в нужном направлении хоть копаю?)
И во что увидел. Как это можно использовать для автоматизации.
PSF=554fb518387d8c713bbec3a9ebf4e1e6 это видно в параметрах и при попытке автоматической и ручной авторизации.
Значит для автоматической авторизации не хватает каких-то параметров?
авторпо клику на запрос, справа можно будет увидеть детали: Header, тип POST/GET, параметры, ответ, куки и всю прочую лабуду. потом, это все можно автоматизировать в VB.
Следует ли рассматривать это как невозможность автоматизировать процесс в VB? Что надо сначала посмотреть параметры и прочую лабуду и только потом переписывать код? Или есть возможность автоматизации?
Справку по объекту WebBrowser скачал. Много примеров. Но все примеры только для тех случаев когда всё находится на одном полотне. А в моём случае на странице только ссылки на загрузку:
Код: html
1.
<frame name="btop" src="top.php" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" noresize>
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Добраться до ссылок на сайте
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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