Простейший граббер

Павел Кирхмаер
На сайте с 21.06.2008
Offline
86
2970

Здравствуйте, порыскал по мусорнику, ой тоесть по интернету и нашёл только один скрипт PHP граббера ...

<?php

$url = "http://vkontakte.ru/rate.php?act=vote&id=15";
$unique_start = "<h2>";
$unique_end = " </h2>";
function weather($url, $unique_start, $unique_end) {
$code = file_get_contents($url);
preg_match('/'.preg_quote($unique_start,
'/').'(.*)'.preg_quote($unique_end, '/').'/Us', $code, $match);
return $match[1];
}
echo weather($url, $unique_start, $unique_end); ?>

Пытаюсь вытянуть саму полоску рейтинга с этой страницы ... это трудно сделать ?

J
На сайте с 15.10.2008
Offline
13
#1

Невозможно, ведь требуется авторизация на ВК. + я так понял каждый пользователь должен видеть свой рейтинг... А авторизироваться в ВК таким образом нельзя :)

wdsg
На сайте с 09.02.2009
Offline
31
#2

botaniQQQ, перед тем как спарсить интересующую страницу, необходимо авторизоваться на vkontakte. Используйте CURL.

Проектирование и разработка сложных IT-систем. Вожусь с проблемными задачами.
Павел Кирхмаер
На сайте с 21.06.2008
Offline
86
#3
Jamesk:
Невозможно, ведь требуется авторизация на ВК. + я так понял каждый пользователь должен видеть свой рейтинг... А авторизироваться в ВК таким образом нельзя
wdsg:
botaniQQQ, перед тем как спарсить интересующую страницу, необходимо авторизоваться на vkontakte. Используйте CURL.

Как я сказал ... простой граббер ... так что всё расчитано на пользователей 100% авторизированных вконтакте ...

Ну если не сложно, как например с index.php соГРАБИТЬ табличку:

Экскурсия по сайту
О том, что Вас ждет после регистрации

Если это не сложно ...

B
На сайте с 23.10.2006
Offline
170
#4

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

Павел Кирхмаер
На сайте с 21.06.2008
Offline
86
#5
bimcom:
Пользователь может быть уже авторизованным, но авторизация после этого проверяется наличием куков у этого пользователя и ваш браузер успешно их отдает, а вот у PHP скрипта этих выданных куков нет - вот его контакт и посылает.

Кажется понял ... мне просто для примерчика не приведёте легчайший граббер с комментариями ?

B
На сайте с 23.10.2006
Offline
170
#6
botaniQQQ:
Кажется понял ... мне просто для примерчика не приведёте легчайший граббер с комментариями ?

проще самому разобраться по схеме:

1. Нужно скачать страничку с которой получить информацию (для начала хотябы без авторизации, установки заголовков, подделки страницы перехода и т.д.)

используем для этого CURL (там пример подробный)

2. Теперь нужно отбросить все лишнее, чтобы остались только нужные данные, в этом помагают регулярные выражения, либо, для начала вот такой финт ушами:


//$file-скаченная страница
$ot='Тут пишем не повторяющуюся на странице часть кода со страницы';
//после которой идет нужная инфа
$do='Тут кусок того что идет после нужного куска материала';
$temp=substr($file,strpos($file,$ot)+strlen($ot)); //отрезаем лишнее с верху
$data=substr($temp,0,strpos($temp,$do)); //отрезаем лишнее с низу
//$data - то ради чего все писалось
Павел Кирхмаер
На сайте с 21.06.2008
Offline
86
#7

bimcom, Спасибо за разъяснение ...

FeoOne
На сайте с 27.12.2008
Offline
32
#8


$head = "GET / HTTP/1.1\r\n";
$head .= "Host: ya.ru\r\n";
$head .= "User-agent: Mozilla\r\n";
$head .= "Cookie: ya_login=feoone\r\n";
$head .= "Connection: Close\r\n\r\n";

$html = '';

if($sock = fsockopen('ya.ru', 80)) {
fwrite($sock, $head);
while(!feof($sock)) {
$html .= fgets($sock, 128);
}
fclose($sock);
echo $html;
}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий