|
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
С нами:
11278406
Репутация:
818
|
|
Tigger
PHP код:
<?php
$email = 'email@rambler.ru';
$pass = '123';
$from = '1';
$to = '5';
set_time_limit(0);
$ua="User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)";
$url = "http://vkontakte.ru/login.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "success_url=&fail_url=&try_to_login=1&email=$email&pass=$pass");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");
curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");
$res = curl_exec($ch);
curl_close($ch);
$a = strpos($res, 'OK' );
if ($a > 0)
{
echo "Незалогинились =(<br>";
exit;
}
$b = strpos($res, 'Found' );
if ($b > 0)
{
echo "<b>Удачно залогинились, приступаем к парсингу...</b><br>";
}
for($i = $from; $i <= $to; $i++)
{
$url_p = "http://vkontakte.ru/search.php?id=$i";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url_p);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");
curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");
$res_p = curl_exec($ch);
curl_close($ch);
preg_match('#<div style=\"overflow: hidden;\">(.*?)</div>#i',$res_p,$name);
$id = explode("php?",$url_p);
echo $id[1].":".$name[1]."<br>";
}
echo "<b>Работа окончена</b>";
?>
Результат:
Удачно залогинились, приступаем к парсингу...
id=1:Павел Дуров
id=2:Александра Владимирова
id=3:Вячеслав
Работа окончена
Ну как видиш в первом курле я добавил сохранение кукисов в файл, в втором ети куки читаються, как бы сессия продолжается. Добавил цикл и при помощи регулярки ищу Имена по профилям:
PHP код:
preg_match('#<div style=\"overflow: hidden;\">(.*?)</div>#i',$res_p,$name);
Собсна все, думаю понятно.
ЗЫ как видиш первые 4 строки ето как бы конфиг:
PHP код:
$email = 'email@rambler.ru';
$pass = '123';
$from = '1';
$to = '5';
Мыло и пасс, с которых логиниться. А так же 2 переменные, с какого id начинать и каким заканчивать.
Последний раз редактировалось b3; 04.02.2009 в 11:44..
|