<MyRusakov.ru />

Создание нейросетей на Python

Создание нейросетей на Python

Этот курс научит Вас созданию нейросетей на Python. Курс рассчитан на начинающих. Вся информация идёт от простого к сложному очень маленькими шажками. При этом глубокое знание математики не требуется. Поскольку в курсе Вы будете получать эти знания по мере необходимости.

Из курса Вы узнаете всю необходимую теорию и терминологию. Научитесь создавать нейросети самых разных архитектур и обучать их. Также Вы создадите собственный фреймворк. Что очень важно проделать для грамотного использования того же PyTorch. Затем Вы изучите и сам PyTorch.

Помимо уроков к курсу идут упражнения для закрепления материала.

Ещё Вы получите Бонусы, дополняющие основной курс: "Распознавание изображений", "Анализ настроения по тексту отзыва", "Программирование на Python с Нуля до Гуру".

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

Подпишитесь на мой канал на 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: a.ahminenko@gmail.com, 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

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