Стоимость: 7000 руб.

Содержание

1 Обзор и анализ способов и средств парсинга интернет-ресурсов

1.1 Задача парсинга и ее направления и особенности

1.2 Анализ и выбор средств реализации парсера

1.3 Регулярные выражения и DOM-структура

2 Проектирование и реализация парсера торговой площадки

2.1 Техническое задание и определение системных требований

2.2 Структурный анализ

2.3 Функциональный анализ

2.4 Проектирование на языке программирования

2.5 Эксплуатация

2.6 Извлечение данных о товаре

2.7 Экспорт данных в файл Microsoft Excel

2.8 Обработка сайтов с java-script

2.9 Тестирование и отладка программы

3 Экономическая часть

3.1 Расход трудоемкости разработки программного продукта

3.2 Расход на оплату труда разработчика программы

3.3 Общие затраты на создание программного продукта

ЗАКЛЮЧЕНИЕ

Список использованных источников

Приложение А


Нужна такая же работа?

Оставь заявку и получи бесплатный расчет

Несколько простых шагов

Оставьте бесплатную заявку. Требуется только e-mail, не будет никаких звонков

Получайте предложения от авторов

Выбирете понравившегося автора

Получите готовую работу по электронной почте

Стоимость: 7000 руб.

На странице представлен фрагмент

Реши любую задачу с помощью нейросети.

1.1 Задача парсинга и ее направления и особенности
Парсеры, готовые или написанные на заказ для решения различных задач очень востребованы в сети. Как и вообще задача автоматического сбора информации, потому что накопление информации делает необходимой постоянную автоматическую обработку и сбор. Сбор информации актуален в продвижении ресурса (СЕО-оптимизация) для получения статистики запроса поисковых систем, для автопополнения контента различных сайтов, создания баз документов для различных целей, например, для рерайтинга. Также автоматический сбор информации (парсинг) применяется для поддержания актуальности информации, наполнения баз данных свежей актуальной информацией, например, о текущих ценах на определенный вид товаров.
Парсер – программа, главной особенностью которой является работа с синтаксисом. Назначение ее может быть различным: получение заданной информации с тематических сайтов в автоматическом режиме, обработка данных с целью быстрого получения заданных выражений.

1.2 Анализ и выбор средств реализации парсера
Парсер – программа, главной особенностью которой является работа с синтаксисом. Назначение ее может быть различным: получение заданной информации с тематических сайтов в автоматическом режиме, обработка данных с целью быстрого получения заданных выражений. Например, автоматическое добавление новостей, новых статей по тематике сайта и прочей информации с других ресурсов схожей тематики, рассмотренное выше, возможно с помощью специализированных скриптов – парсера новостей или граббера контента сайтов. Парсить – разбирать какой-либо документ (в основном, html или xml) на составляющие части и обрабатывать их, согласно конечной цели.
Парсинг обозначает проведение визуального или программно-автоматизированного синтаксического и лексического анализа или разбора какого-либо документа с целью извлечения из него необходимых данных.

1.3 Регулярные выражения и DOM-структура
Как было сказано в 1.2, существует два основных средства средства разбора html. Это регулярные выражения и специализированные библиотеки для разбора html на основе DOM-структуры. Теперь можно рассмотреть из более подробно.
1.3.1 Регулярные выражения
Регулярное выражение – это строка шаблона (специализированные метасимволы и метапоследовательности) предназначенная для поиска, выборки и замены текста, совпадающего с шаблоном [18]. Парсинг состоит в умении правильно построить шаблон выбора текста. Так же регулярные выражения являются незаменимым инструментом чистки информации, получаемой от пользователя (так называемая «защита от дурака»). В самом общем смысле регулярное выражение либо совпадает внутри некоторого фрагмента текста (при использовании egrep – в строке), либо не совпадает.
Универсальные шаблоны регулярных выражений сами по себе напоминают миниатюрный язык программирования, предназначенный для описания и разбора текста.

2.1 Техническое задание и определение системных требований
В выпускной квалификационной работе поставлена следующая задача: разработка и программная реализация парсера для сбора данных о товарах категории «Бижутерия и часы» подкатегорий «Мужские часы» и «Женские часы» с торговой площадки Banggood с сохранением отобранных результатов в Microsoft Excel файл расширения .xls.
Выбор такого вывода данных обусловлен тем, что такой формат является очень удобным как для последующей обработки пользователем средствами Microsoft Excel (фильтрация, изменение и т.д.), так и для экспорта в приложение для работы с базами данных, например Microsoft Access. С последующим использованием как в виде базы данных по товарам, так и при пополнении контента сайта интернет-магазина. А также именно в формате Microsoft Excel чаще всего предоставляются прайс-листы на товары на сайтах. Поэтому этот формат удобен и практичен.
Разрабатываемое приложение должно быть кросс-браузерным, кроссплатформенным.

2.4 Проектирование на языке программирования
На стадии проектирования функции из раздела функционального анализа нужно заменить на функции из языка программирования.
Для парсера функции для обработки html -кода запроса зависят от тех средств, которые используются для этого. В языке php существуют несколько способов реализации парсера: использование регулярных выражений RegExp; php Simple html DOM Parser; SimpleXML и DOM. Они рассмотрены в разделе 1.3.
Не зависимо от выбранного способа обработки html будет использоваться цикл foreach, который позволяет работать с каждым найденным совпадением и проводить его дополнительную обработку: очистку от лишних вхождений и сохранение в файл.
Также будут использоваться функции file_get_contents и file_get_html, которые берут контент с целевой страницы. Они отличаются тем, что в file_get_html содержится DOM-модель библиотеки Simple Html Dom Parser, а file_get_contents является страндартной функцией php.

2.5 Эксплуатация
Теперь опишем условия эксплуатации программы.
Для работы программного модуля необходимо установить на серверный компьютер Apache и php. Можно установить их отдельно, или воспользоваться готовой сборкой: OpenServer, Денвер, XAMPP и т.д.
Затем скопировать файлы программы на сервер. В случае работы с Денвером это папка Z:homelocalhostwww, куда добавляется папка с проектом banggood, в которой находится непосредственно файл parser.php, а также подключаемая библиотека SimpleHtmlDomParser. Для Openserver также поместить в localhost папку с проектом banggood (путь Openserverdomainlocalhostbanggood).
Если установлен Openserver (Денвер, ХАМРР), то сначала нужно запустить его, а уже затем переходить к следующему пункту.
Для запуска приложения-парсера на клиентском компьютере, нужно ввести адрес сервера и путь до приложения:
localhost/ banggood /parser.php
в строку браузера, после чего запускается скрипт.

2.6 Извлечение данных о товаре
Теперь создаем собственно php-файлы, которые после отладки сольем в один с готовым проектом parser.php. Подключаем выбранную для обработки HTML библиотеку Simple Html DOM Parser.
Скачать ее последнюю версию можно на http://sourceforge.net. В архиве, который можно скачать на сайте, две папки (примеры работы и документация) и файл Simple_html_DOM.php. Simple_html_DOM.php – это вся библиотека, больше ничего для работы не потребуется. Нужно сохранить этот файл в папку с проектом и в своем скрипте просто подгрузить его:
include ‘Simple_html_DOM.php’;
Файл подключен и готов к работе. Помимо приложенной документации, также доступна online-версия, расположенная на http://SimpleHtmlDOM.sourceforge.net/manual.htm.
Теперь можно использовать функции разбора в нашем парсере.

2.7 Экспорт данных в файл Microsoft Excel
Существенной частью задания на выпускную работу является сохранение данных в формате .xls. Основная идея в том, что Excel уже давно умеет сохранять свои документы как html. Поэтому решение: ­ сохраняем любой документ именно так, вопроизводим заголовок excel-документа (шапку). Для этого открываем в текстовом редакторе excel-файл, смотрим что и как там написано[27]:

header(‘Content-Type: application/vnd.ms-excel; charset=windows-1251’);
header(“Content-Disposition: attachment;filename=”.date(“d-m-Y”).”-export.xls”);
header(“Content-Transfer-Encoding: binary “);

Это заголовок нашего php-скрипта, сообщающий, что тип документ является таким, которое может поддерживаться приложением Microsoft Excel (ms-excel).
Теперь можно выводить ранее полученные данные, из MySQL, из файла, в нашем случае – результат работы скрипта.
Теперь нужно сформировать стандартную html-шапку под правильную кодировку, чтобы в Excel корректно отображалась кириллица.

2.8 Обработка сайтов с java-script
Цена по умолчанию указывается в долларах, в рубли ее переводит скрипт, работающий на странице. Есть сложность – выделение данных из скрипта. Например, данные на странице, которую видит пользователь, представлены в формате html, структурированы в таблицу, и кажется, что нет никаких сложностей в их извлечении. Но php видит таблицу такой, какая она исходно; вместе таблицы может быть исполняемый на странице скрипт (java или php). В таком случае нужно извлекать данные из него.
Первоначально возникла сложность с выполнением кода. Потому, что браузер при просмотре исходного кода элемента показывал одно, а скачанная с помощью file_get_contents (или как в нашем случае file_get_html) страница содержала другой код.
На рис 2.7 и 2.8 показано различие в коде страниц в соответствующих местах.

Рисунок 2.7 – Исходный код страницы Banggood в браузере

Рисунок 2.

2.9 Тестирование и отладка программы
Первоначальное тестирование и отладка идет на этапе написания регулярных выражений. Как описано в 2.6, полученные данные совпадают с исходными.
Как видно из приведенных на рис.2.5 результатов, информация представлена на английском. Первоначально брался русский вариант. Но принято решение брать результаты на английском, потому, что русский перевод делается автоматически, и очень плохо. Например «Fashion Metal Dial Women Quartz Watch Casual Unisex Wrist Watch» переводится как «Мода Металл набора женщин кварцевые часы вскользь унисекс», хотя должно переводится как «Модные металлические женские кварцевые наручные часы, унисекс». Поэтому, хотя русский перевод также легко спарсить, достаточно только прибавить к адресу страницы модификатор ru, сложно читать полученные результаты.
Цена по умолчанию указывается в долларах, в рубли ее переводит скрипт, работающий на странице (раздел 2.8).

3.1 Расход трудоемкости разработки программного продукта
Экономическая часть содержит расчет стоимости разработки и программная реализация парсера торговой площадки с целью сбора информации по представленным продуктам.

Трудоемкость разработки программного продукта определяется:
ТПР = ТО +ТИ + ТА + ТБС + ТН + ТОТ + ТД (3.1)
Затраты можно вычислить через условное число операторов в программе (Q). Число операторов в отлаженной программе на языке рhр составляет 250.

Расчет затрат труда на подготовку описания.
Так как подготовка описания задачи не проводилась, примем ТО =0. Далее оцениваются затраты труда на изучение описания задачи, они определяются:
ТИ = , (3.2)
где В – коэффициент увеличения затрат труда вследствие недостаточного описания задачи, уточнений и недоработок, В= 1,2…5;
К – коэффициент квалификации разработчика.
Данный показатель рассчитывается с учетом квалификации программиста. Коэффициент квалификации разработчика для работающих менее 2 лет составляет 0,8.

3.2 Расход на оплату труда разработчика программы
Расходы на оплату труда разработчика программы определяются как произведение трудоемкости создания программного продукта на среднюю часовую оплату программиста (с учетом премий, доплат и отчислений на страховые взносы):
Зр = (3.11)

Расчет средней зарплаты программиста. Средняя часовая зарплата программиста определяется исходя из величины его месячного оклада (О), продолжительности рабочей смены и фонда рабочего времени планируемого года. Ставка программиста составляет 20000 рублей, продолжительность рабочего дня – 8 часов, среднемесячное число рабочих дней составит 20,3 дней.
Таким образом, средняя часовая зарплата составит:
Зсрч = 20000/(20,3 ∙ 8) = 122,97 руб.
Расход на оплату труда разработчика программы.
Расходы на оплату труда разработчика программы определяются
по формуле (3.11):
Зр = 122,97 43,77(1 30/100)= 6997,94 руб.
и составит 6997,94 руб.
3.

3.3 Общие затраты на создание программного продукта
Общие затраты Спр складываются из заработной платы программиста-разработчика (6997,94 руб.) и затрат на оплату машинного времени.
Рассчитаем оплату машинного времени. Затраты на оплату машинного времени при отладке программы определяются умножением фактического времени отладки программы на цену машино-часа арендного времени:
ЗОТЛ = СМЧ ∙ ТОТЛ (3.12)
Расчет фактического времени отладки:
ТОТЛф = ТН + tДО + ТОТ, (3.13)
ТОТЛф = 4,46 + 9,38 + 1,3 = 15,14 час.
Цену часа машинного времени примем, исходя из стоимости аренды компьютера, равной 35 рублей за час.
Затраты на оплату машинного времени:
ЗОТЛ = 35 ∙ 15,14 = 529,95 руб.

Теперь подсчитаем общие затраты Спр на создание продукта:
Спр = 6997,94 + 529,95 = 7527,89 ≈ 7528 руб.
Итого, общие затраты на создание программы-парсера для сбора данных с торговой площадки 7528 рублей, основные затраты составляет заработная плата программиста.

ЗАКЛЮЧЕНИЕ
В данной выпускной квалификационной работе представлена поставлена следующая задача разработки и программной реализации парсера для сбора данных о товарах категории «Бижутерия и часы» подкатегорий «Мужские часы» и «Женские часы» с торговой площадки Banggood с сохранением отобранных результатов в Microsoft Excel файл расширения .xls. В настоящее время автосбор данных и парсинг является востребованным и перспективным. В данном случае, собранные данные актуальны: они используются как в виде базы данных по товарам, так и при пополнении контента сайта интернет-магазина; также помогают предприятию установить собственную ценовую политику.
Сделан анализ и выбор средств реализации данной задачи, проведен анализ языков программирования в точки зрения задачи html-разбора. Подробно разобраны такие инструменты, как регулярные выражения и DOM-структура. Рассмотрены основные подходы к реализации парсеров на языке php, выделены наиболее популярные решения.

Список использованных источников
1. Парсинг [Электронный ресурс]: Википедия, 2017. URL: wikihttp://ru.wikipedia.org/
2. Парсер. Редактирование постов [Электронный ресурс]: Wiki.dirty, 2017. URL: http://wiki.dirty.ru
3. Парсер внешних ссылок [Электронный ресурс]: Datacol, 2016, URL: http://www.datacol.ru
4. Найденов Н., Автоматический сбор информации из открытых Интернет-источников [Электронный ресурс]: Учреждение Российской академии наук Вычислительный центр им. А.А.Дородницына РАН, 2014. URL: https://www.hse.ru
5. Way J., 30 лучших CSS техник для начинающих (пер.Бернацкого А.) [Электронный ресурс]: Студия Webformyself, 2017. URL: http://www.webformyself.com
6. Паклин Н.Б., Орешков В.И., Бизнес-аналитика: от данных к знаниям // Спб.: Питер, 2009 – 624 с.
7. Гражданский кодекс РФ (ГК РФ) от 21.10.1994 N 51-ФЗ (ст. 15, 16)
8. Получение информации с другого сайта. Законность [Электронный ресурс]: Форумы RSDN, 2012. URL: http://www.rsdn.ru/forum
9.

Узнайте сколько будет стоить выполнение вашей работы

   

Список использованной литературы

  1. 1. Парсинг [Электронный ресурс]: Википедия, 2017. URL: wikihttp://ru.wikipedia.org/
  2. 2. Парсер. Редактирование постов [Электронный ресурс]: Wiki.dirty, 2017. URL: http://wiki.dirty.ru
  3. 3. Парсер внешних ссылок [Электронный ресурс]: Datacol, 2016, URL: http://www.datacol.ru
  4. 4. Найденов Н., Автоматический сбор информации из открытых Интернет-источников [Электронный ресурс]: Учреждение Российской академии наук Вычислительный центр им. А.А.Дородницына РАН, 2014. URL: https://www.hse.ru
  5. 5. Way J., 30 лучших CSS техник для начинающих (пер.Бернацкого А.) [Электронный ресурс]: Студия Webformyself, 2017. URL: http://www.webformyself.com
  6. 6. Паклин Н.Б., Орешков В.И., Бизнес-аналитика: от данных к знаниям // Спб.: Питер, 2009 - 624 с.
  7. 7. Гражданский кодекс РФ (ГК РФ) от 21.10.1994 N 51-ФЗ (ст. 15, 16)
  8. 8. Получение информации с другого сайта. Законность [Электронный ресурс]: Форумы RSDN, 2012. URL: http://www.rsdn.ru/forum
  9. 9. Парсинг html на php. Парсинг от А до Я [Электронный ресурс]: Парсинг и Я. Блоги, 2015, URL: http://parsing-and-i.blogspot.com
  10. 10. Силин Ю. Парсинг – что такое? [Электронный ресурс]: ИнетМаркет, 2012, URL: http://inetmkt.ru
  11. 11. Фридл Дж. Регулярные выражения. – 3-е изд., М.:Символ-Плюс,2008. -560 с.
  12. 12. Функции DOM [Электронный ресурс]: Форум PHP.SU, 2017, URL: http://www.php.su/
  13. 13. Языки программирования. Краткий обзор. [Электронный ресурс]: Программирование для всех, 2015, URL: http://programma-free.ru/
  14. 14. HtmlAgilityPack [Электронный ресурс]: Codeplex.com, 2014, URL: http://www. codeplex.com
  15. 15. Grab – python-библиотека для парсинга сайтов [Электронный ресурс]: Хабрахабр, 2015. URL: https://habrahabr.ru/
  16. 16. Чтение XML в Java с помощью DOM [Электронный ресурс]: Java Swing и другая Java, 2016, URL: http://javaswing.wordpress.com/
  17. 17. Парсинг html на Java [Электронный ресурс]: Java, 2014, URL: http://thejava.info/
  18. Мотивация менеджеров по продажам // 2dip - студенческий справочник. URL: https://2dip.su/теория/менеджмент/понятие_мотивации_в_менеджменте/мотивация_менеджеров_по_продажам/
4.78
Bussy
Высшее образование: бакалавриат, магистратура - АД Диплом - сметное дело и ценообразование. Диплом - переводчик в сфере профессиональной коммуникации. Должность - старший воспитатель, контрактный управляющий МДОУ Детский сад