<MyRusakov.ru />

Разработчик игр на Unreal Engine

Разработчик игр на Unreal Engine

Этот комплект с нуля всего за 7 месяцев сделает Вас Unreal-разработчиком. И при этом учиться достаточно 1 час в день.

Начнёте Вы с основ программирования, постепенно перейдя к C++. Затем очень подробно изучите Unreal Engine, и после научитесь программировать на C++ в Unreal Engine. В конце создадите крупный проект на C++ в Unreal Engine для своего портфолио.

Комплект содержит:

- 416 видеоуроков

- 95 часов видео

- 1024 задания для закрепления материала из уроков

- 3 финальных тестирования

- 4 сертификата

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Форум сайта MyRusakov.ru

Помощь в парсинге сайта...
29.01.2012 15:30:02 Помощь в парсинге сайта... Сообщение #1
Neo.LoL

Neo.LoL

Продвинутый

Продвинутый

Дата регистрации:
15.11.2011 15:22:16

Сообщений: 56

Ребята нужна помощь! Я хочу пропарсить сайт mover.uz, вот php код как делали с youtube.com:

<?php
/*
=====================================================
DleMovie (Module for CMS DataLife Engine)
-----------------------------------------------------
Copyright (c) 2011 Alexander Ahminenko
=====================================================
Данный код защищен авторскими правами
-----------------------------------------------------
E-Mail, ICQ: [email protected], 681216
=====================================================
*/
if ( ! defined ( 'DATALIFEENGINE' ) ) {
die( 'Hacking attempt!' );
}
class DleMovieYoutube {
private $main = false;
private $config = array( );
private $authorized = false;
private $authuser = false;
private $authhash = false;

public function __construct( $main ) {
$this->main = $main;
$this->config = $main->config;
return true;
}
public function getVideoById( $id ) {
$params = array( 'alt' => 'json', 'q' => $id );
$headers = array( 'X-GData-Key' => 'key=' . $this->config['youtube_key'], 'GData-Version' => '2' );
$query = $this->main->curlQuery( 'http://gdata.youtube.com/feeds/api/videos', $params, 'GET', array( ), $headers, $response );
$object = json_decode( $response, true );
$video = $this->videoRowParse( $object['feed']['entry'][0] );
if ( $video !== false ) return $video;
return false;
}
public function getVideosByUserChannel( $user, $start, $limit ) {
$params = array( 'alt' => 'json', 'author' => $user, 'max-results' => $limit, 'start-index' => $start );
$headers = array( 'X-GData-Key' => 'key=' . $this->config['youtube_key'], 'GData-Version' => '2' );
$query = $this->main->curlQuery( 'http://mover.uz/feeds/api/videos', $params, 'GET', array( ), $headers, $response );
$object = json_decode( $response, true );
$i = 1;
if ( count( $object['feed']['entry'] ) > 0 ) {
foreach ( $object['feed']['entry'] as $row ) {
$video = $this->videoRowParse( $row );
if ( $video !== false ) {
$data[$i] = $video;
$i ++;
}
}
} else return false;
return $data;
}
# Channel: most_recent, most_viewed, top_rated, most_discussed, top_favorites, recently_featured, most_responded, most_linked
public function getVideosByStdChannel( $channel, $start, $limit ) {
$params = array( 'alt' => 'json', 'max-results' => $limit, 'start-index' => $start );
$headers = array( 'X-GData-Key' => 'key=' . $this->config['youtube_key'], 'GData-Version' => '2' );
$query = $this->main->curlQuery( 'http://gdata.mytube.uz/feeds/api/standardfeeds/' . $channel, $params, 'GET', array( ), $headers, $response );
$object = json_decode( $response, true );
$i = 1;
if ( count( $object['feed']['entry'] ) > 0 ) {
foreach ( $object['feed']['entry'] as $row ) {
$video = $this->videoRowParse( $row );
if ( $video !== false ) {
$data[$i] = $video;
$i ++;
}
}
} else return false;
return $data;
}
# Category: all, auto, comedy, education, entertainment, film, howto, music, news, people, animals, tech, sports, travel
# Order: relevance (default = NULL), published, viewCount
public function getVideosFromCategory( $category, $query, $order, $start, $limit ) {
$params = array( 'alt' => 'json', 'orderby' => $order, 'max-results' => $limit, 'start-index' => $start );
$headers = array( 'X-GData-Key' => 'key=' . $this->config['youtube_key'], 'GData-Version' => '2' );
$category = ucfirst( strtolower( $category ) );
if ( $category == 'All' or empty( $category ) ) $location = 'http://gdata.youtube.com/feeds/api/videos';
else $location = 'http://gdata.youtube.com/feeds/api/videos/-/{http://gdata.youtube.com/schemas/2007/categories.cat}' . $category;
$query = $this->main->curlQuery( 'http://gdata.youtube.com/feeds/api/standardfeeds/' . $channel, $params, 'GET', array( ), $headers, $response );
$object = json_decode( $response, true );
$i = 1;
if ( count( $object['feed']['entry'] ) > 0 ) {
foreach ( $object['feed']['entry'] as $row ) {
$video = $this->videoRowParse( $row );
if ( $video !== false ) {
$data[$i] = $video;
$i ++;
}
}
} else return false;
return $data;
}
private function videoRowParse( $row ) {
$data = array( );
if ( ! empty( $row['title']['$t'] ) ) {
$data['title'] = trim( $row['title']['$t'] );
$data['descr'] = trim( str_replace( "\n", '<br />', $row['media$group']['media$description']['$t'] ) );
$data['duration'] = trim( $row['media$group']['yt$duration']['seconds'] );
$data['screen']['url'] = trim( $row['media$group']['media$thumbnail'][0]['url'] );
$data['screen']['width'] = trim( $row['media$group']['media$thumbnail'][0]['width'] );
if ( ! empty( $row['media$group']['media$thumbnail'][1]['url'] ) ) {
$data['screen-hq']['url'] = trim( $row['media$group']['media$thumbnail'][1]['url'] );
$data['screen-hq']['width'] = trim( $row['media$group']['media$thumbnail'][1]['width'] );
}
} else return false;
return $data;
}
public function authorization( ) {
$params = array( 'accountType' => 'HOSTED_OR_GOOGLE', 'Email' => $this->config['youtube_email'], 'Passwd' => urlencode( $this->config['youtube_passwd'] ), 'service' => 'youtube', 'source' => 'dlemovie' );
$query = $this->main->curlQuery( 'https://www.google.com/youtube/accounts/ClientLogin', $params, 'POST', array( ), array( 'Content-Type' => 'application/x-www-form-urlencoded' ), $response );
if ( substr_count( $response, 'Auth' ) > 0 and substr_count( $response, 'YouTubeUser' ) > 0 ) {
$response = trim( str_replace( "\n\r", "\n", $response ) );
$authdata = explode( "\n", $response );
$authhash = trim( str_replace( 'Auth=', '', $authdata[0] ) );
$authuser = trim( str_replace( 'YouTubeUser=', '', $authdata[1] ) );
$this->authuser = $authuser;
$this->authhash = $authhash;
$this->authorized = true;
return true;
} else {
$this->authuser = false;
$this->authhash = false;
$this->authorized = false;
return false;
}
}
}
$youtube = new DleMovieYoutube( $dlemovie );
?>

Мне нужно сделать тоже самое только с сайтом mover.uz помогите пожалуйста!
Профиль
29.01.2012 15:33:56 Помощь в парсинге сайта... Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

И зачем этот код? Он для другого сайта, у Вас он будет совсем другой.
Первым делом определитесь, что Вы хотите парсить. "Парсить весь сайт" - проще всего. Но Вы же хотите спарсить что-то конкретное, например, какие-нибудь новости, статьи. Для этого изучайте структуру HTML-кода данного сайта, смотрите, где требуемые элементы и где они находятся. В соответствии с этим Вы далее пишите парсер, где загружаете полностью всю страницу, а затем выделяете конкретную часть. Вот это выделение делается с помощью регулярных выражений, а сами регулярные выражения Вам и нужно написать в зависимости от того, что Вы хотите и какова структура HTML-кода на сайте.
Профиль
29.01.2012 15:47:24 Помощь в парсинге сайта... Сообщение #3
Neo.LoL

Neo.LoL

Продвинутый

Продвинутый

Дата регистрации:
15.11.2011 15:22:16

Сообщений: 56

вообщем вот что у меня получилось:
http://minecraft.uz/?do=video&act=upload
Только есть одна ошибка, добавлении видео через Mover.uz не получается... Скажите где нужно конкретно посмотреть?
Профиль
29.01.2012 15:52:53 Помощь в парсинге сайта... Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Вы хотите, чтобы пользователи загружали видео на Ваш сайт, но при этом оно бы и добавлялось сразу на mover.uz? Если так, то это уже очень сложная работа. Нужно, во-первых, иметь аккаунт на этом сайте, далее нужно через PHP авторизовываться там, затем загружать видео, посылая соответствующие работы. Работы здесь даже специалисту будет очень много. Рекомендую использовать cURL, он хоть немного облегчит задачу.
Профиль
29.01.2012 15:56:00 Помощь в парсинге сайта... Сообщение #5
Neo.LoL

Neo.LoL

Продвинутый

Продвинутый

Дата регистрации:
15.11.2011 15:22:16

Сообщений: 56

Нет мне нужно, чтобы загружали на Mover.uz, а на сайте просто разполагалось в виде Фрейма и не более
Профиль
29.01.2012 15:57:59 Помощь в парсинге сайта... Сообщение #6
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

А люди должны указывать ссылку на видео? Если так, то здесь парсинг вообще не нужен.
Профиль
29.01.2012 15:58:38 Помощь в парсинге сайта... Сообщение #7
Neo.LoL

Neo.LoL

Продвинутый

Продвинутый

Дата регистрации:
15.11.2011 15:22:16

Сообщений: 56

Ну да ))) Извените Михаил я просто как обычно усложняю задачу) Скажите как сделать проще?
Профиль
29.01.2012 16:00:26 Помощь в парсинге сайта... Сообщение #8
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Посмотрите на код добавления видео на mover.uz. Возьмите любое видео, там где-то в коде должна быть ссылка на него. И Ваша задача будет просто заменять эту ссылку на ту, что укажет пользователь, а весь остальной код оставлять прежним.
Профиль
29.01.2012 16:05:56 Помощь в парсинге сайта... Сообщение #9
Neo.LoL

Neo.LoL

Продвинутый

Продвинутый

Дата регистрации:
15.11.2011 15:22:16

Сообщений: 56

Понимаете Михаил, мне нужно чтобы человек добавил видео на Mover.uz, а потом мог добавить его на сайт Minecraft.uz !
Профиль
29.01.2012 16:08:24 Помощь в парсинге сайта... Сообщение #10
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Я так и понял, и как это сделать, уже написал.
Профиль