Архив: Сделать парсер микроразметки со сканером страниц сайта на python по тз

Бюджет 67$ / 4000
руб
в месяц
Создан: 5 лет назад
Закрыт
Описание
За сколько денег готовы сделать такой парсер ? И что по срокам (возможно я чего то в тз не учёл или не доходчиво расписал, в таком случае постараюсь ответить на ваши вопросы и при необходимости дописать)
Думаю возможно надо будет использовать базу)

Про парсер:
Парсер принимает POST запрос от php скрипта со списком ссылок которые надо спарсить в параметре "links" или 
Принимает 1 ссылку на главную страницу сайта в параметре "url", в этом случае надо просканировать сайт а потом его спарсить.

По скольку парсинг сайтов может занять довольно долго времени,  надо сделать «систему очереди»  – каждый сайт на парсинг это 1 задание со своим id, что бы  php скрипт не ждал ответа, а  python сам ему отдавал контент после парсинга. (сначала  python отдает php скрипту параметр id)

Парсинг.

Используя библиотеку extruct ( github.com/scrapinghub/ex... ) которая выгружает из веб страницы всю микроразметку, с нее  необходимо спаристь: дату публикации, заголовок статьи, ключевые слова, категорию, текст статьи.

Заголовок можно спарсить с тега headline

Дату можно спарсить с тега datePublished (article:published_time)

Ключевые слова можно спарсить с тега keywords  (article:tag)

Категорию можно спарсить с тега BreadcrumbList 
если первый элемент (item) равен названию домена то его откидываем

{ '@context': 'schema.org/',
                 '@type': 'BreadcrumbList',
                 'itemListElement': [ { '@type': 'ListItem',
                                        'item': { '@id': 'iz.ru',
                                                  'name': 'iz.ru'},
                                        'position': 1},
                                      { '@type': 'ListItem',
                                        'item': { '@id': 'iz.ru/news',
                                                  'name': 'Новость'},
                                        'position': 2},
                                      { '@type': 'ListItem',
                                        'item': { '@id': 'iz.ru/rubric/mir',
                                                  'name': 'Мир'},
                                        'position': 3}]}],

Если в микроразметке нету тега breadcrumbList, то попытатся найти клас «breadcrumb» с тегами <a href в HTML

Если не удается найти BreadcrumbList то пытаемся спарсить с тега articleSection  (article:section) 
Примечание
Возможно я указал не все теги мекроразметки с которых можно спарсить необходимые данные, в таком случае необходимо их дополнить.

текст статьи – позже напишу какой библиотекой парсится текст статьи
Дополнительно о парсинге
Парсинг проходит в 2 этапа:
1 этап сначала парсим со всех страниц категории,получаем: 
страница | категоря
суммируем все и отдаем php скрипту что то вроде этого:
Id задания 
категория1 = 200 страниц
категория2 = 50 страниц
категория3 = 200 страниц
категория4 = 25 страниц
2 этап
php скрипт может дать запрос с параметрами:
id  (Id задания)
startparse – начать парсинг (без других параметров парсит все страницы)
excludecats=категория2,категория3  – исключить категорию страницы в этих категориях не будут парсится
onlycats=категория1 – страницы будут парсится только с этой категории


Передача контента php скрипту
После парсинга Python Передает параметры: 
ID – идентификатор задания
cats – категории в формате: категория1| категория2 |категория3
title – заголовок статьи
tags метка1|метка2|метка3
date дата публикации
content – текст статьи

Поскольку может быть довольно большой объем  контента то необходимо передавать спарщенный контент php скрипту порционно по id задания (ну или придумать альтернативу)

Дополнительно

Желательно сделать возможным что бы когда php скрипт обращался по ID задания к python парсеру он ему давал в ответ статус: 
error, 
progress (обработано 50 страниц из 100), 
finish
-----------------------------------------
Обязательные поля:  
текст статьи (content)
Категория (cats)

Если парсер не смог спарсить  content то возвращает  php скрипту  error-content 

Если парсер не смог спарсить  cats то возвращает  php скрипту  error-cats и останавливается. Но php скрипт может отправить параметр force по ID задания и парсер продолжит  работу.
--------------------------------------------
Сканер

Если Python  получает параметр  url с главной страницей сайта он запускает сканер сайта (поиск всех страниц сайта)
Сначала пробуем найти sitemap.xml (в robots.txt и напрямую)
Если не находим то сканируем сайт средствами пайтона
При сканирование парсим категории (cats)

В результате мы должны вернуть php скрипту что то вроде этого:
Id задания 
категория1 = 200 страниц
категория2 = 50 страниц
категория3 = 200 страниц
категория4 = 25 страниц
--------------------------------
php скрипт может дать запрос с параметрами:
id  (Id задания)
startparse – начать парсинг
excludecats=категория2,категория3  – исключить категорию страницы в этих категориях не будут парсится
onlycats=категория1 – страницы будут парсится только с этой категории
Категория

Похожие проекты

safe 
0 3
Необходимо разработать систему, которая: Подключается к API Diagnocat и iDent (через токены доступа). Получает данные о пациенте, результатах диагностики, снимках и назначениях. Автоматически формирует структурированный отчет по шаблону (включая врачей, этапы лечения, стоимость и описание процедур).......
 
0 0
Необходимо связать БД 1C:ERP с БД Outlook, MS Access, Битрикс24. Например при вводе нового сотрудника в 1С:ERP он должен автоматически появляться в вышеперечисленных БД....
2 месяца назад
 
0 1
Требуется реализация отчёта на кастомизированной 1С:УПП 1. 2, ТЗ и контрольный пример во вложении, 80% кода должно быть покрыто модульными тестами....
2 месяца назад
$7
0 1
Мне нужно копировать мой текст и вставлять в одну группу ВК с открытой стеной для публикации рекламы. Задача скрипта/сервиса/программы - примерно каждые 10 секунд брать мой текст и вставлять в эту группу. Я пробовал через одну программу, которая записывает действия мышки и потом повторяет, но она как-то......
4 месяца назад
safe 
0 0
Написать прошивку для A94B114, используя 2 подобные рабочие прошивки. Все файлы есть....
$21
0 2
Нужно разархивировать файл архив. ujems, есть распаковщик, но выдает ошибку. Прислать пруфы(скрины)....
7 месяцев назад
safe 
0 1
Входные: Имеется скрипт по обработке email писем и добавление их в систему Redmine   Проблема: Система обработки этих писем написана некорректная и негибкая    Задача: Переписать логику обработки входящих писем, чтобы исключить их потерю при незначительных отклонениях от ожидаемой структуры....
$37
0 1
- В обязанности сотрудника входит поддержание мобильного приложения системы автоматизации бизнеса. - Работа сдельная: задачи выдаются на оценку, далее после согласования передаются на реализацию. - Заключаем договор и NDA (соглашение о неразглашении)....
$71
0 0
Информация о проекте: Проект включает в себя React Native приложение с Expo внутри которого находится webview с сайтом На устройствах с ОС IOS проблема с воспроизведением видео....
7 месяцев назад
safe 
0 0
Разрабатываю десктопные программы на языке Java,  а так же Java + SQL....
 
0 6
  1. Чтобы можно было писать описание события (без заголовка) - превью в списке берется N количества букв с начала. (в списке писать дату события и сколько осталось до него) . Выставление даты и времени напоминания и ИНТЕРВАЛА ПОВТОРА ОТ 1 МИНУТЫ! Выставлять количество повторов, далее напоминания прекращаются.......
safe 
0 4
Сайт arg2028t. beget. tech/. Нужно сделать вот такой калькулятор. airprint. by/outdoor/wide-format. и еще некоторые доработки....
safe 
0 7
Краткое описание: Мы ищем исполнителя для тестирования функционала мобильного приложения на платформе Android. Задача включает проверку основных функций приложения, таких как работа комнаты, передача видео, звука и чата, а также создание подробной отчетности о найденных ошибках.   Требования к исполнителю:......
safe 
0 12
Разработка чат-бота под ваши нужды....
$143
0 0
Oпpocы (1008pyб/чaс) Заходитe на сaйт: gonsù....
10 месяцев назад
 
0 4
Требуется создать скрипт для premiere pro. Данная суть скрипта: в выделеном бине нужно что бы автоматически проставлялся in out ровно по серидине файла так что бы выделенная область была длиной 3 секунды. И требуется кнопка что бы работало через окно expressions. Проблема текущего в том что он не работает......
 
0 2
Нужно создать приложения под гемблинг/беттинг, на котлин. Приложение должно работать Firebase. Детали вышлю при обсуждение....
$21
0 4
Нужно разархивировать файл archive. ujems, есть распаковщик, но выдает ошибку. Прислать пруфы  ....
1 год назад
safe 
0 3
Разработать впн сервис ( Приложения на ios и android + сайт для оплаты подписки). Настройка Серверов. Оплата по договоренности. Работаем черед безопасную сделку....
1 год назад
Смотреть все