[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Парсинг с кинопоиска
tmt0086
привет всем, вот решил заняться написанием парсинга, но встрял почти сразу же!
вот что я написал:
<?
$name=$_GET['name'];
$zapros='http://www.kinopoisk.ru/index.php?first=no&kp_query='.$name;
$content = file_get_contents("$zapros");
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U", $content, $res);
echo $res;
?>

и это все чудо выдает всегда "Array"! что не так( попробовал еще на одном трекере че нить вывести, но то же "Array".. кто сталкивался подскажите пожалуйста



Спустя 10 минут, 7 секунд (25.09.2010 - 21:45) waldicom написал(а):
Достаточно сделать print_r($res) и Вы увидите, что там лежит

Спустя 4 минуты, 45 секунд (25.09.2010 - 21:50) tmt0086 написал(а):
Эм.. так он выводит! =) но вот как реализовать с помощью регулярных выражений? потому что мне надо фильтровать информацию

Спустя 14 минут, 43 секунды (25.09.2010 - 22:05) tmt0086 написал(а):
да и вообще мне выводит, мол я парсить пытаюсь.. как то это обойти?((

Спустя 4 минуты, 29 секунд (25.09.2010 - 22:09) SlavaFr написал(а):
Цитата (tmt0086 @ 25.09.2010 - 19:05)
да и вообще мне выводит, мол я парсить пытаюсь.. как то это обойти?((

не парсить.
может кинопоиск этого просто не желает?

Спустя 9 минут, 49 секунд (25.09.2010 - 22:19) tmt0086 написал(а):
Цитата (SlavaFr @ 25.09.2010 - 19:09)
не парсить.
может кинопоиск этого просто не желает?

а если надо? biggrin.gif

Спустя 8 минут, 33 секунды (25.09.2010 - 22:27) tmt0086 написал(а):
да и вообще была просьба подсказать что вот тут не так
<?
$name=$_GET['name'];
$zapros='http://www.kinopoisk.ru/index.php?first=no&kp_query='.$name;
$content = file_get_contents("$zapros");
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U", $content, $res);
echo $res;
?>
что он пишет array

Спустя 9 минут, 1 секунда (25.09.2010 - 22:36) SlavaFr написал(а):
на вопрос с array тебе ведь waldicom уже ответил. не чего не поделать так устроина функция preg_match, что она в 3-ем параметре все найденое в масив заносит.

Спустя 3 минуты, 32 секунды (25.09.2010 - 22:40) tmt0086 написал(а):
SlavaFr а какой нибудь другой выход есть?

Спустя 13 минут, 3 секунды (25.09.2010 - 22:53) Joker написал(а):
Цитата (tmt0086 @ 26.09.2010 - 00:05)
да и вообще мне выводит, мол я парсить пытаюсь.. как то это обойти?((

curl в помощь.

Спустя 8 минут, 33 секунды (25.09.2010 - 23:02) Rand написал(а):
Цитата
да и вообще мне выводит, мол я парсить пытаюсь.. как то это обойти?((

$name = $_GET['name'];
if (isset($_GET['name'])) {
$fp = fsockopen('www.kinopoisk.ru', 80);
if ($fp) {
$header = "GET /index.php?first=no&kp_query=" . $name . " HTTP/1.0\r\n";
$header .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
$header .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n";
$header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 5.1)\r\n";
$header .= "Connection: Keep-Alive\r\n";
$header .= "Host: www.kinopoisk.ru\r\n\r\n";
fputs($fp, $header);
while (!feof($fp))
$content .= fgets($fp, 1024);
}
fclose($fp);
preg_match_all("|<[^>]+>(.*)</[^>]+>|U", $content, $res);
print_r($res);
}

Спустя 6 минут, 26 секунд (25.09.2010 - 23:08) SlavaFr написал(а):
@tmt0086 я честно не врубаюсь чем тебе масив не подходит.

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

Спустя 5 минут, 28 секунд (25.09.2010 - 23:13) Rand написал(а):
SlavaFr
Они там и пишут вместе с этим сообщением про XML сервис, но по моему там парсится только рейтинг фильма.

tmt0086
Осторожно, за большое количество запросов банят по IP.

Спустя 24 минуты, 1 секунда (25.09.2010 - 23:37) SlavaFr написал(а):
Цитата (Rand @ 25.09.2010 - 20:13)
Осторожно, за большое количество запросов банят по IP.

А могут и не только забанить, ведь рано или поздно они заметят, что ip с которого идут запросы являются сайтом. тогда они не только забанят, но и даже домой подскачить могут.

Спустя 8 часов, 40 минут, 10 секунд (26.09.2010 - 08:18) tmt0086 написал(а):
SlavaFr вот домой ты переборщил! smile.gif просто охото научиться, а вот буду ли я это использовать я не знаю)

Спустя 4 минуты, 46 секунд (26.09.2010 - 08:22) tmt0086 написал(а):
Rand
спасибо, работает! буду читать и разбираться))

Спустя 2 часа, 1 минута, 33 секунды (26.09.2010 - 10:24) tmt0086 написал(а):
<?
$name = $_GET['name'];
$film = $_GET['film'];
if (isset($_GET['name'])) {
$fp = fsockopen('www.kinopoisk.ru', 80);
if ($fp) {
$header = "GET /index.php?first=no&kp_query=" . $name . " HTTP/1.0\r\n";
$header .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
$header .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n";
$header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 5.1)\r\n";
$header .= "Connection: Keep-Alive\r\n";
$header .= "Host: www.kinopoisk.ru\r\n\r\n";
fputs($fp, $header);
while (!feof($fp))
$content .= fgets($fp, 1024);
}
fclose($fp);
if (@preg_match("|Location:|si",$content)) {
$res=preg_replace("'.*?Location: 'si","<a class=\"all\" href=\"/parser.php?film=",$content);
$res1=preg_replace("'/sr/1/.*?0'si","\">Предпологаемый фильм</a>",$res);
print_r($res1);
} else {
$res=preg_replace("'.*?Скорее всего вы ищете:</H2></td></tr>'si","<table>",$content);
$res1=preg_replace("'<tr><td colspan=2 height=5><spacer type=block height=5></td></tr>.*?</html>'si","</table>",$res);
$res2=preg_replace("'href=\"'si","href=\"/parser.php?film=",$res1);
$res3=preg_replace("'/sr/1/\"'si","\"",$res2);
print_r($res3);
}
}

if (isset($_GET['film'])) {
$fp = fsockopen('www.kinopoisk.ru', 80);
if ($fp) {
$header = "GET " . $film . " HTTP/1.0\r\n";
$header .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
$header .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n";
$header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 5.1)\r\n";
$header .= "Connection: Keep-Alive\r\n";
$header .= "Host: www.kinopoisk.ru\r\n\r\n";
fputs($fp, $header);
while (!feof($fp))
$content .= fgets($fp, 1024);
}
fclose($fp);
$res=preg_replace("'.*?</td><td style=\"width: 100%; vertical-align: top\">'si","",$content);
$res1=preg_replace("'<script type=\"text/javascript\">.*?</html>'si","",$res);
print_r($res1);
}
?>

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

Спустя 2 дня, 7 часов, 21 минута, 15 секунд (28.09.2010 - 17:45) tmt0086 написал(а):
почему иероглифы Фсякие?! я не догоняю, что это вообще может быть, кодировку пробовал поменять использую utf-8 вообще. помогите решить =) user posted image

Спустя 15 минут, 26 секунд (28.09.2010 - 18:01) SlavaFr написал(а):
воровать научился, а кодировку менять нет.

Спустя 2 минуты, 55 секунд (28.09.2010 - 18:04) tmt0086 написал(а):
SlavaFr biggrin.gif ну извини, я же учусь всему потихоньку

Спустя 4 минуты, 57 секунд (28.09.2010 - 18:08) SlavaFr написал(а):
[юмор]А у какова фотографа ты на твой аватар фотографировался? ohmy.gif [/юмор]

Спустя 2 минуты, 50 секунд (28.09.2010 - 18:11) tmt0086 написал(а):
biggrin.gif там просто шокирующий фотограф был.. как из "Легион" моронженщик blink.gif
кстати получилось все =)

Спустя 5 месяцев, 9 дней, 4 часа, 59 минут, 48 секунд (8.03.2011 - 00:11) Маэстро написал(а):
Бери Content Downloader и вперед любой сайт спарсить может, кинопоиск тоже - сам парсил - терь полная база фильмов с описаниями и картинки))


_____________
Продаю людей. Дешего. Писать в ПС
Быстрый ответ:

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