[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Парсер [В]Контакте
Jaska
Накатал скрипт который должен заходить ВКонтакт

<?php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://vkontakte.ru/id80679454");
curl_setopt($ch, CURLOPT_COOKIE, "remixsid=a6e67713abfb5102591a99e6b615bc94970ca50252117e724afeabbf");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "id=80679454&IP_ADDRESS=109.187.199.207&request_method=get&pda=");

$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );

curl_close( $ch );

$content_handle = fopen("content.txt","w+");
fwrite($content_handle,$content);
fclose($content_handle);

$err_handle = fopen("err.txt","w+");
fwrite($err_handle,$err);
fclose($err_handle);

$errmsg_handle = fopen("errmsg.txt","w+");
fwrite($errmsg_handle,$errmsg);
fclose($errmsg_handle);

?>


Но вместо ожидаемой страницы в content.txt я вижу

<html>
<head>
<meta
http-equiv="content-type" content="text/html; charset=windows-1251" />
<script>
var
t = setTimeout("location.href='http://vkontakte.ru/login.php?op=logout'", 7000);
</script>
</head>
<body>
<div>
<img
src="http://vkontakte.ru/images/progress.gif">
</div>
<form
id="f" name="f" method="post" action="http://vkontakte.ru/id80679454">
<input
type='hidden' name='id' value='80679454' /><input type='hidden' name='IP_ADDRESS' value='109.187.199.207' /><input type='hidden' name='request_method' value='post' /><input type='hidden' name='pda' value='' />
</form>
<iframe
name="mf" onload="try{if (this.contentWindow.location.href.indexOf('slogin') != -1) {clearTimeout(t); if (this.contentWindow.location.href.indexOf('nonenone') != -1) {location.href='http://vkontakte.ru/login.php?op=logout&to=aWQ4MDY3OTQ1NA--'; return false;} document.f.submit();}} catch(e) {}" border="0" style="border:0px; background-color:#FFF" src="http://login.vk.com/?vk=" width="1" height="1"></iframe>
</body>
</html>


Насколько я понимаю механизм такой. Отправляя GET запрос приходит JS в котором по таймеру отправляется POST запрос с теми же данными что и в GET но немного расширенными (например IP_ADDRESS)

Непонятно как правильно залогиниться вконтакте.



Спустя 10 часов, 21 минута, 12 секунд (24.04.2010 - 09:05) sl4mmer написал(а):
Jaska
поиском по форуму пользоваться надо)

http://phpforum.ru/index.php?showtopic=28053&hl=

з.ы.кстати для спасибо тут кнопочка есть- с плюсиком такая cool.gif

Спустя 1 час, 41 минута, 26 секунд (24.04.2010 - 10:47) Jaska написал(а):
Благодарю, не совсем то конечно, но тоже полезно. Вопрос отпал поскольку с впса коннект на vkontakte.ru:80 не идет.

Спустя 4 часа, 1 минута, 16 секунд (24.04.2010 - 14:48) krasilich написал(а):
хм, у них авторизация через vk.com это раз.

А во-вторых делать нужно немного не так.

1. оправлять пост запрос с логином паролем, в ответ получаем куки.
2. Заходим на любую страничку контакта, но подставляем нужные куки.

Спустя 1 час, 19 минут, 59 секунд (24.04.2010 - 16:08) sl4mmer написал(а):
krasilich
дак в том посте что я ссылку оставил - это же и описано, просто с использованием готового класса....

Спустя 1 день, 4 часа, 33 минуты, 11 секунд (25.04.2010 - 20:41) Jaska написал(а):
krasilich

Без разницы. vk.com и vkontakte.ru недоступно. fsockopen возвращает Connection timed out. Cервер стоит точно не в России, проблему эту я видел уже по форумам.

Если ты повнимательнее посмотришь куки я уже подставил.

curl_setopt($ch, CURLOPT_COOKIE, "remixsid=a6e67713abfb5102591a99e6b615bc94970ca50252117e724afeabbf");


но изначально я обращался к gsearch.php, но это без разницы, поскольку форма со скрытыми инпутами приходит всеравно!

sl4mmer

По-моему в этом случае этот класс является лишь тормозом. Курл должен справляться быстрее.

Спустя 7 часов, 47 минут (26.04.2010 - 04:28) sl4mmer написал(а):
Jaska
curl_setopt($ch, CURLOPT_COOKIE, "remixsid=a6e67713abfb5102591a99e6b615bc94970ca50252117e724afeabbf");


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


кстати.. насчет того к кому обращаться

<form method="post" name="login" id="login" action="http://login.vk.com/?act=login" onsubmit="if (vklogin) {return true} else {quick_login();return false;}">


ни о чем не говорит?

Спустя 1 день, 17 часов, 25 минут, 7 секунд (27.04.2010 - 21:53) Jaska написал(а):
И почему cookie жестко прописанные не сработает?
Я обращался и к vk.com, может у них забанены хостинги..

Спустя 12 часов, 54 минуты, 23 секунды (28.04.2010 - 10:48) Nikitian написал(а):
Цитата
Я обращался и к vk.com, может у них забанены хостинги..

Вполне логичный шаг. А банить можно и проще: если реверс-днс не похож на динамический адрес провайдера (обычно это адрес, включающий в себя элементы ip), то незачем ходить через прокси или скриптам. Проблема только в относительной медлительности получения реверса - это можно делать только асинхронно, как и любые обращения к внешним или медленным ресурсам.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.