Вход

Разработка и программная реализация модуля для и сбора поиска информации в глобальных сетях

Рекомендуемая категория для самостоятельной подготовки:
Дипломная работа*
Код 272005
Дата создания 21 марта 2015
Страниц 85
Мы сможем обработать ваш заказ (!) 26 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
6 100руб.
КУПИТЬ

Описание

В данной дипломной работе на тему «Разработка и программная реализация модуля для и сбора поиска информации в глобальных сетях» рассматривается актуальная тема сбора и поиска информации, а также процесс создания программы.Прилагаемая к дипломной работе программа на языке php собирает и обрабатывает информацию, оставляя только актуальные главные новости, и сохраняет их в файл (исходный код в приложении).
Защита в 2014г, специалист, оценка -отлично. ...

Содержание

Содержание
Введение 5
1 Средства и инструменты реализации поиска и сбора информации в глобальных сетях 6
1.1 Основные средства информационного поиска 6
1.2 Информационные источники 7
1.3 Инструменты информационного поиска 9
2 Средства реализации модуля для поиска информации в глобальных сетях 25
2.1 Постановка задачи и выбор средств ее реализации 25
2.2 Библиотека cURL 32
2.3 Расширение DOM 40
3 Реализация модуля для поиска и сбора информации в глобальных сетях 44
3.1 Постановка задачи 44
3.2 Парсинг целевого ресурса 45
3.3 Интерфейс разработанного модуля 52
3.4 Использование библиотеки cURL 53
3.5 Сохранение скачанной информации в файл 53
3.6 Тестирование и отладка 54
3.7 Эксплуатация 57
4 Безопасность жизнедеятельности 59
4.1 Характеристика производства 59
4.2 Потенциальные опасности и вредности на производстве. 60
4.3 Мероприятия по устранению этих опасностей и вредностей. 62
4.4 Производственный микроклимат 63
4.5 Вентиляция, отопление 64
4.6 Производственное освещение 65
4.7 Воздействие шума и вибрации 66
4.8 Электро- и пожаробезопасность 67
4.9 Расчет заземлительного контура 70
5 Экономическая часть 76
5.1 Расход трудоемкости разработки программного продукта 76
5.2 Расход на оплату труда разработчика программы 78
5.3 Общие затраты на создание программного продукта 79
Выводы и рекомендации 80
Библиографический список 82
Приложение А 85

3.4 Использование библиотеки cURL
В главе 2.2 была описана библиотека cURL, ее особенности и возможности. Также были рассмотрены опции соединения, которые можно задать. В программе cURL использован для более гибкого управления соединением, прежде всего для того, чтобы увеличить время, которое отводится на ожидание.
Сам процесс использования cURL, создания и закрытия сессии уже рассматривался в 2.2, поэтому рассмотрим только наиболее существенные опции: CURLOPT_TIMEOUT CURLOPT_USERAGENT и CURLOPT_RETURNTRANSFER. Их параметры:
$ch = cURL_init( $link);
cURL_setopt($ch, CURLOPT_URL, $link);
// задается ссылка для cURL-сессии
cURL_setopt($ch, CURLOPT_HEADER, 0);
cURL_setopt($ch, CURLOPT_TIMEOUT, 240); //содержит максимальное время в секундах, которое отводится для работы CURL-функций
cURL_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)'); //программе передаются параметры браузера
cURL_setopt($ch,CURLOPT_RETURNTRANSFER,1);
//Передает ненулевое значение, так нужно, чтобы cURL возвращал инфоормацию в переменную, а не выводил непосредственно на печать
$res = cURL_exec($ch);
cURL_close($ch);

Таким образом, благодаря использования cURL и его настроек, повысилась надежность работы программы.
3.5 Сохранение скачанной информации в файл
Сохраняем скачанную информацию в создаваемый файл:
$myFile = "News.html";
$fh = fopen($myFile, 'a') or die("can't open file");

И записываем в него всю информацию:
fwrite($fh, $h);

где вторая переменная (в данном случае $h) – это тот текст или графика, которая извлечена и сохраняется.
3.6 Тестирование и отладка
Отладка происходила в процессе создания программы. Первоначально программа отлаживалась на скачанных документах. Затем тестировалась в режиме он-лайн на заново появляющихся страницах. Программа работает правильно. Время срабатывания составляет примерно не более 60 секунд – это скачивание всех новостей по ссылкам в единый файл.
Результатом работы является собранная на одной странице информация, которая выводится на экран и сохраняется в файл.
Результат работы программы приведен на рис.3.7.
Рисунок 3.7 – Результат работы программы
Во время отладки и тестирования пришлось столкнуться со следующими проблемами:
1. Ошибка Warning: file_get_contents() [function.file-get-contents]: PHP_network_getaddresses: getaddrinfo failed: Этот хост неизвестен. Отла-женный на скачанной странице скрипт перестал работать, при выходе на стартовую страницу онлайн. Как оказалось, со скачанной страницы берется полная ссылка вида:
HTTP://ria.ru/defense_safety/20140508/1006949817.HTML
а непосредственно с онлайн-ресурса:
/defense_safety/20140508/1006949817.HTML

Поэтому пришлось вводить дополнительное условие – проверять наличие полной ссылки, и если ее нет, то дополнять в запросе до полной ссылки:
$HTML3 = file_get_HTML ("HTTP://ria.ru".$link_st2[$i]);

2. Поскольку скорость обработки скрипта не всегда одинакова, при-шлось увеличить время ожидания с помощью cURL. Для этого были использованы средства библиотеки cURL. Более подробно новые настройки описаны в разделе 3.4.
3. Из-за использования библиотеки cURL пришлось по-другому создавать объект библиотеки Simple_HTML_DOM, используя вместо функции file_get_HTML следующий код:
$res = cURL_exec($ch); //скачанная в переменную страница
$HTML = new Simple_HTML_DOM(); //создаем новый объект Sim-ple_HTML_DOM
$HTML –>load($res, true, false); //загружаем в этот объект скачанную
//страницу и получаем объект Simple_HTML_DOM

Введение

Автоматический поиск и сбор информации, парсинг контента очень популярен, при этом он применяется как владельцами небольших и разви-вающихся сайтов, так и крупными компаниями в целях сбора контента, от-слеживания тематических статей, баз для рерайтинга. Даже крупные компании, такие как Google, для новостей используют, в основном информацию со специализированных порталов информационных агентств – Лента.ру, РИА Новости, РБК, Утро.ру и т.д.
В целом в работе рассматриваются вопросы информационного поиска и сбора информации, рассматриваются различные инструменты и источники информационного поиска. Практическая часть представляет собой реализацию программного модуля для автоматического поиска и сбора информации из заданных источников.

Фрагмент работы для ознакомления

Для начала работы с инструментом, его нужно инициализировать. Делается это с помощью функции cURL_init , которая инициализирует сURL-сессию следующим образом:$ch = cURL_init();resource cURL_init([string url])Функция cURL_init() инициализирует новую сессию и возвратит сURL-дескриптор для использования в функциях cURL_setopt(), cURL_exec() и cURL_close(). Если необязательный параметр url предоставлен, то опция CURLOPT_URL получит значение этого параметра. cURL_exec() – выполняет сURL-сессию.сurl_exec. Эта функция должна вызываться после того, как была инициализирована сессия сURL и все опции этой сессии уже установлены. Её назначение в том, чтобы просто выполнить предопределённую CURL-сессию (заданную в параметре ch – инициализации).bool cURL_exec (resource ch)Функция cURL_close закрывает CURL-сессию и освобождает все ресурсы. CURL-дескриптор ch также удаляется.void cURL_close ( resource ch)У CURL-сессии, идентифицируемой параметром ch, может быть множество различных параметров, которые устанавливаются с помощью функции cURL_setopt. cURL_setopt – устанавливает опции для CURL-трансфера/transfer.bool cURL_setopt (resource ch, string option, mixed value)Параметр option является опцией, которую нужно установить, а value это значение опции option.Параметр value должен быть long для следующих опций (специфицированных параметром option):CURLOPT_INFILESIZE: Если выгружаете файл на удалённый сайт, эта опция должна использоваться, для того чтобы сообщить PHP, какой будет ожидаемый размер infile.CURLOPT_VERBOSE: Установите эту опцию в ненулевое значение, если нужно, чтобы CURL сообщала обо всех действиях.CURLOPT_HEADER: Установите эту опцию в ненулевое значение, если нужно, чтобы шапка/header включалась в вывод.CURLOPT_NOPROGRESS: Установите эту опцию в ненулевое значение, если не нужно, чтобы PHP выводил индикатор процесса CURL-трансфера. (PHP автоматически устанавливает эту опцию в ненулевое значение, изменять её необходимо лишь при отладке.)CURLOPT_NOBODY: Установите эту опцию в ненулевое значение, если не нужно, чтобы тело/body включалось в вывод.CURLOPT_FAILONERROR: Установите эту опцию в ненулевое значение, если нужно, чтобы PHP завершал работу скрыто, если возвращаемый HTTP-код имеет значение выше 300. По умолчанию страница возвращается нормально с игнорированием кода.CURLOPT_UPLOAD: Установите эту опцию в ненулевое значение, нужно, чтобы PHP подготавливал файл к выгрузке.CURLOPT_POST: Установите эту опцию в ненулевое значение, если нужно, чтобы PHP выполнял регулярный HTTP POST. Этот POST имеет нормальный вид application/x-www-form-urlencoded, чаще всего используемый HTML-формами.CURLOPT_FTPLISTONLY: Установите эту опцию в ненулевое значение, и PHP будет выводит листинг имён FTP-директории.CURLOPT_FTPAPPEND: Установите эту опцию в ненулевое значение, и PHP будет присоединять к удалённому/remote файлу, вместо его перезаписи.CURLOPT_NETRC: Установите эту опцию в ненулевое значение, и PHP будет сканировать ваш файл ~./netrc с целью поиска ваших username и password для удалённого сайта, с которым вы устанавливаете соединение.CURLOPT_FOLLOWLOCATION: Установите эту опцию в ненулевое значение, чтобы следовать любому «Location:» header, который сервер высылает как часть HTTP header (заметьте, что это рекурсия, PHP будет следовать за всеми «Location: »-header'ами, которые высылаются.)CURLOPT_PUT: Установите эту опцию в ненулевое значение, чтобы HTTP PUT файл. Файл для PUT обязан быть установлен с помощью CURLOPT_INFILE и CURLOPT_INFILESIZE.CURLOPT_MUTE: Установите эту опцию в ненулевое значение, и PHP будет работать скрыто в отношении CURL-функций.CURLOPT_TIMEOUT: Передаёт long как параметр, который содержит максимальное время в секундах, которое вы отводите для работы CURL-функций.CURLOPT_CONNECTTIMEOUT: Передаёт long как параметр, который содержит максимальное время в секундах, которое отводите для ожидания при попытке подключения. Используйте 0 чтобы ждать бесконечно.CURLOPT_LOW_SPEED_LIMIT: Передаёт long как параметр, который содержит скорость трансфера в байтах в секунду, ниже которого трансфер должен работать в процессе выполнения CURLOPT_LOW_SPEED_TIME, в секундах, чтобы PHP считал его слишком медленным и прерывал его.CURLOPT_LOW_SPEED_TIME: Передаёт long как параметр, который содержит время в секундах, ниже которого трансфер должен работать в процессе выполнения CURLOPT_LOW_SPEED_LIMIT, чтобы PHP считал его слишком медленным и прерывал его.CURLOPT_RESUME_FROM: Передаёт long как параметр, который содержит смещение в байтах, с которого трансфер должен стартовать.CURLOPT_SSLVERSION: Передаёт long как параметр, который содержит используемую версию SSL (2 или 3). По умолчанию PHP пытается определить это сам, хотя в некоторых случаях программист обязан устанавливать это вручную.CURLOPT_SSL_VERIFYHOST: Передаёт long, если CURL должна проверять common-имя peer-сертификата в SSL handshake/«рукопожатие». Значение 1 указывает, что нужно проверить существование общего / common имени, значение 2 указывает, что нужно убедиться в совпадении с предоставленным Hostname.CURLOPT_TIMECONDITION: Передаёт long как параметр, который определяет, как рассматривается CURLOPT_TIMEVALUE. Можно установить этот параметр для TIMECOND_IFMODSINCE или TIMECOND_ISUNMODSINCE. Это действует только для HTTP.CURLOPT_TIMEVALUE: Передаёт long как параметр, который является временем в секундах, прошедшим после 1 января 1970. Это время используется, как специфицировано опцией CURLOPT_TIMEVALUE, или по умолчанию будет использоваться TIMECOND_IFMODSINCE.CURLOPT_RETURNTRANSFER: Передаёт ненулевое значение, если нужно, чтобы CURL непосредственно возвращала полученную информацию, вместо её печати напрямую.Параметр value должен быть строкой для следующих значений параметра option:CURLOPT_URL: Это URL, который PHP должен получать. Можно также устанавливать эту опцию при инициализации сессии функцией cURL_init().CURLOPT_USERPWD: Передаёт в РНР строку, отформатированную в виде [username]:[password], для использования при соединении.CURLOPT_PROXYUSERPWD: Передаёт в РНР строку, отформатированную в виде [username]:[password], для соединения с HTTP-прокси.CURLOPT_RANGE: Передаёт специфицированный вами диапазон. Он должен быть в формате «X-Y», где X или Y могут отсутствовать. HTTP-трансферы поддерживают также различные интервалы, разделённые запятыми, как, например, X-Y,N-M.CURLOPT_POSTFIELDS: Передаёт строку, содержащую полные данные для передачи операцией HTTP «POST».CURLOPT_REFERER: Передаёт строку, содержащую «referer/ссылающийся» header, используемый в HTTP-запросе.CURLOPT_USERAGENT: Передаёт строку, содержащую «user-agent» header, используемый в HTTP-запросе.CURLOPT_FTPPORT: Передаёт строку, содержащую значение, которое будет использоваться для получения IP-адреса для инструкции FTP «POST». POST-инструкция указывает удалённому серверу: соединиться со специфицированным IP-адресом. Строка может быть обычным IP-адресом, Hostname/именем хоста, именем сетевого интерфейса (под UNIX), или просто обычным «-», используемым для системного IP-адреса по умолчанию.CURLOPT_COOKIE: Передаёт строку с содержимым куки/cookie, установленным в HTTP header’е.CURLOPT_SSLCERT: Передаёт строку, содержащую filename форматированного сертификата PEM.CURLOPT_SSLCERTPASSWD: Передаёт строку, содержащую password, необходимый для работы сертификата CURLOPT_SSLCERT.CURLOPT_COOKIEFILE: Передаёт строку, содержащую имя файла с данными куки. Этот cookie-файл может иметь формат Netscape, или содержать обычные шапки/headers в HTTP-стиле, забитые в файл.CURLOPT_CUSTOMREQUEST: Передаёт строку, используемую вместо GET или HEAD при выполнении HTTP-запроса. Это делается для выполнения DELETE или других, более скрытых HTTP-запросов. Верными значениями являются GET, POST и так далее; то есть не вводите здесь полную строку HTTP-запроса. Например, ввод "GET /index.HTML HTTP/1.0" будет некорректным. (не делайте это, если не уверены, что сервер поддерживает эту команду.)CURLOPT_PROXY: Передаёт имя HTTP-прокси туннельным запросам.CURLOPT_INTERFACE: Передаёт имя исходящего сетевого интерфейса для использования. Это может быть имя интерфейса, IP-адрес или имя хоста.( cURL_setopt($ch, CURLOPT_INTERFACE, $extIP) )CURLOPT_KRB4LEVEL: Передаёт KRB4 (Kerberos 4) уровень секретности. Это любая из следующих строк (в порядке от менее до более мощной): «clear», «safe», «confidential», «private».Если эта строка не совпадает с какой-либо из указанных, то используется «private». Если установить здесь NULL, это отключит KRB4-безопасность. KRB4-безопасность работает в настоящее время только с транзакциями FTP.CURLOPT_HTTPHEADER: Передаёт массив полей HTTP-HEADer"а для установки.CURLOPT_QUOTE: Передаёт массив FTP-команд для выполнения на сервере до выполнения FTP-запроса.CURLOPT_POSTQUOTE: Передаёт массив FTP-команд для выполнения на сервере после выполнения FTP-запроса.Следующие опции ожидают дескриптора файла, который получается с помощью функции fopen():CURLOPT_FILE: Файл, куда должен быть помещён вывод трансфера, по умолчанию это STDOUT.CURLOPT_INFILE: Файл, из которого приходит ввод трансфера.CURLOPT_WRITEHEADER: Файл для записи HEADer-части вывода.CURLOPT_STDERR: Файл для записи ошибок, вместо stderr.Параметр value должен быть функцией следующего вида long write_callback (resource ch, string data){ ... return strlen($data);}для следующих значений параметра option:CURLOPT_WRITEFUNCTION: .CURLOPT_HEADERFUNCTION: .Параметр value должен быть функцией следующего вида string read_callback (resource ch, resource fd, long length){}для следующих значений параметра option:CURLOPT_READFUNCTION: .Обработка ошибок. Для того, чтобы отслеживать ошибки и проблемы в CURL используются следующие функции: cURL_errno, cURL_error и cURL_getinfo.cURL_errno – возвращает целое число, содержащее номер последней ошибки.int cURL_errno ( resource ch)cURL_error – возвращает строку, содержащую номер последней ошибки для текущей сессии.string cURL_error (resource ch)cURL_getinfo – получает информацию, касающуюся специфической передачи/transfer.string cURL_getinfo (resource ch, int opt)2.3 Расширение DOMВ РНР расширение DOM является заменой для DOM XML расширения из PHP 4. Расширение по-прежнему содержит много старых функций, но они больше не должны быть использованы. В частности, функции, которые не объектно-ориентированных следует избегать.Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP 5 [19].DOM (Document Object Model) – это стандарт (интерфейс или библиотека) для работы с разметкой документов. DOM позволяет работать с HTML и XML документами, изменяя их структуру. Основное преимущество DOM состоит в том, что он не зависит от языка. Есть несколько уровней DOM:1-й уровень – все основные функции находятся на этом уровне. То есть добавление, получение и изменение элементов. Фактически, это самое главное.2-й уровень – всё тоже самое, но добавились пространства имён (XMLns).3-й уровень – имеет язык запросов XPath (похож на SQL, но только для документов, а не для базы данных), а также другие технологии.Применений у DOM очень много. В первую очередь, он применяется для генерации XML-документов (например, карты сайта в формате XML). Различные базы данных, настройки и прочее. Всё это тоже может генерироваться и считываться с помощью DOM. Также применяется активно для создания динамики на HTML-страницах [20].Расширение позволяет работать на документе XML (а также с HTML) с DOM API.Предопределенные классы: DOMAttr, DOMCharacterData и DOMDocument, DOMDocumentType, DOMElement [19].API модуля следует DOM Level 2 стандарту как можно ближе. Следовательно, API является полностью объектно-ориентированным. Это хорошая идея, чтобы стандарт DOM был доступным при использовании этого модуля. Этот модуль определяет несколько классов, которые объяснены в следующих таблицах. Классы с эквивалент в стандарте DOM названы DOMxxx.DOMAttr интерфейс представляет атрибут в DOMElement объекта. DOMDocument имеет большое количество методов, полезных при парсинге HTML-документа [то же]:DOMDocument-> GetElementById () – поиск элемента с определенным идентификаторомDOMDocument-> GetElementsByTagName () – поиск всех элементов с заданным именем тегаDOMDocument-> getElementsByTagNameNS () – поиск всех элементов с заданным именем тега в указанном пространстве именDOMDocument-> ImportNode () – импорт узел в текущем документеDOMDocument-> нагрузка () – загрузка XML из файлаDOMDocument-> loadHTML () – загрузка HTML из строкиDOMDocument-> loadHTMLFile () – загрузка HTML из файлаDOMDocument-> LoadXML () – загрузка XML из строкиDOMDocument-> CreateAttribute () – создание нового атрибутаТакже есть методы по созданию новых узлов, элементов, текста и комментариев.На основе DOM созданы библиотеки и дополнения, также часто используемые при парсинге. Например, библиотека Simple HTML DOM. Также DOM-модель используется в PHPQuery. PHPQuery является приложением на стороне сервера, связанным селектором CSS3 с Document Object Model (DOM) API на основе JQuery (JavaScrIPt библиотеки).Библиотека написана на PHP 5 и обеспечивает дополнительный интерфейс командной строки (CLI).Наиболее популярными решениями для парсинга среди разработчиков являются PHPQuery и Simple HTML DOM. PHPQuery, как уже говорилось выше, является клоном аналогичной JavaScrIPt-библиотеки JQuery. Особенно она популярна у тех, кто уже сталкивался с ней, работая с языком JavaScrIPt. В Simple HTML DOM применяются похожие селекторы, собственно, у разработчиков и была такая цель – создание инструмента, позволяющего работать с HTML кодом используя jQuery подобные селекторы. В данной главе рассмотрены возможные варианты выбора языка, обоснован выбор РНР. Рассмотрены основные инструменты, которые используются при парсинге на РНР.3 Реализация модуля для поиска и сбора информации в глобальных сетях3.1 Постановка задачиКак уже было сказано в главе 1, инструменты информационного поиска могут быть различными. Актуальная информация должна постоянно обновляться, желательно в автоматическом режиме. В качестве выбранного инструмента поиска для реализации модуля для поиска информации в глобальных сетях возьмем парсер. Задачей парсера будет сбор целевой информации о текущих событиях в стране и в мире. Выбраны источники информации о текущих событиях. Это информационное агентство РИАНовости. Задачей реализуемого модуля является поиск и автоматический сбор наиболее актуальных новостей, извлечение полного текста наиболее актуальных новостей в автоматическом режиме.Схематически процесс представлен на рис 3.1 и 3.2.. . .Страница с полным текстом новостиСтартовая страницаСписок адресовСтраница с полным текстом новостиСтраница с полным текстом новостиСкачиваем,обрабатываем. . .скачиваем страницыполностьюРисунок 3.1 – Схематический процесс парсингаПосле полностью скачанные страницы обрабатываются (рис.3.2).скачиваем страницыполностьюОбрабатываем: извлекаем только текст новости и иллюстрации к ней. . .. . .Сливаем в один файл.Сохраняем.Выводим на экранРисунок 3.2 – Схематический процесс парсинга (продолжение)Приложение является клиент-серверным, вся обработка совершается на сервере. Со стороны клиента необходим только браузер. Если приложение работает на компьютере пользователя – то нужен интерпретатор РНР и локальный веб-сервер (Apache, Nginx и т.д.).Программа решает следующие задачи:Подключение к ресурсу, сбор и обработка информации. Извлечение перечня наиболее важных событий дня;Переход по ссылкам на полный текст новости или события, скачивание и обработка текста новости;Сохранение всей собранной информации в файл и автоматическое открытие файла (если нужно).3.2 Парсинг целевого ресурсаКак видно из поставленных задач, их нельзя решить без парсинга. В РНР парсинг можно реализовать с помощью библиотеки Simple HTML DOM Parser, которая используется для анализа HTML. Ее основным плюсом является скорость и поддержка невалидного HTML-кода, отсутствие проблем с кодировками [21,22].С помощью этой библиотеки можно удобно работать с тегами: поиск, очистка и замена тегов, выборочная очистка от тегов и т.д., обращаться к элементам и атрибутам элементов, искать определенного уровня вложенные элементы, фильтровать их, искать текст и комментарии. Simple HTML DOM (а также SimpleXML) основан на программной модели, известной как Объектная модель XML-документа, или DOM (Document Object Model). Вся библиотека Simple HTML DOM – это один файл Simple_HTML_DOM.PHP, который нужно сохранить в папку с проектом и подключить в своем скрипте с помощью функции include:include 'Simple_HTML_DOM.PHP';К скачанной библиотеке прилагается документация.301625748665Применим эту библиотеку для разбора HTML-кода главной страницы РИАНовости (www.ria.ru, рис.3.3)Рисунок 3.3 – Главная страница РИАНовости (www.ria.ru)-431801306830На рис.3.3 приведен также блок информации «Картина дня», который нужно выбрать, а затем уйти по указанным в нем ссылкам. Для того, чтобы определить, какая структура нужна, нужно посмотреть в браузере код страницы, и найти код нужных элементов (рис.3.4). Рисунок 3.4 – Поиск нужных тегов и элементов в структуре страницыКак видно из рис.3.4, ссылка находится в заголовках h3, но после проверки мы видим, что таких заголовков на странице много. Поэтому нам нужен верхний тег <div class="day_news_riac day_news_page day_news_content_hidden" data-page="riaclub">и находящийся в нем список <ul class="day_news_items">, в пунктах <li> которого содержатся нужные заголовки h3 с наиболее важными новостями дня. Для того, чтобы добраться до этого элемента, нужно подключить с помощью библиотеки Simple_HTML_DOM сгенерировать объект Simple_HTML_DOM полученной (скачанной) страницы новостей: $HTML = file_get_HTML ('HTTP:// www.ria.ru ');Теперь можно найти выбранный список в HTML-структуре с помощью функции find. Для этого в цикле ищем все заданные соответствия: список ul под названием day_news_items и все входящие в него пункты li ('ul.day_news_items li'). Каждый найденный элемент записываем в переменную $day_news:foreach($HTML->find('ul.day_news_items li') as $n){ // echo $n; $day_news = $day_news.$n; }После этого нужно извлечь все url адреса на подробные новости. Теперь уже нет смысла обращаться к библиотеке Simple_HTML_DOM, можно использовать регулярные выражения.Регулярные выражения – это один из способов поиска подстрок (соответствий) в строках Осуществляется это с помощью просмотра строки в поисках некоторого шаблона. Главным преимуществом регулярных выражений является использование метасимволов – специальных символов, задающие команды, а также управляющие последовательности [23].Для работы с РНР используются следующие функции:preg_filter – Производит поиск и замену по регулярному выражению;preg_grep – Возвращает массив вхождений, которые соответствуют шаблону;preg_last_error – Возвращает код ошибки выполнения последнего регулярного выражения PCRE;preg_match_all – Выполняет глобальный поиск шаблона в строке;preg_match – Выполняет проверку на соответствие регулярному выражению;preg_quote – Экранирует символы в регулярных выражениях;preg_replace_callback – Выполняет поиск по регулярному выражению и замену с использованием callback-функции;preg_replace – Выполняет поиск и замену по регулярному выражению;preg_split – Разбивает строку по регулярному выражению.Вначале была попытка сделать это с помощью регулярного выражения и функции preg_match_all:preg_match_all("!a href=\"(.*?)\"!si",$day_news,$ok);однако оказалось, что данная функция создает массив с двумя элементами, и записывает в них все совпадения. Поэтому вначале полученная в переменной $day_news строка превращается в массив:$ok = explode("<",$day_news)Для этого используется функция explode, а в качестве разделителя знак тега "<".

Список литературы

Список литературы включает в себя книги и интернет-ресурсы по языку php, а также научные статьи и методические материалы по средствам информационного поиска.
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00576
© Рефератбанк, 2002 - 2024