Этот сайт существует на доходы от рекламы.
Пожалуйста, выключите AdBlock.
Вернуться   Форум об интернет-маркетинге > > >
Ответ
 
Опции темы
Старый 27.12.2018, 15:54   #71
Mrtrick
Аспирант
 
Регистрация: 04.10.2013
Сообщений: 156
Репутация: 10946

По умолчанию Re: MassArticleParser - массовый парсинг статей. Один парсер для всех сайтов.

Цитата:
Сообщение от JakoKruzo Посмотреть сообщение
Mrtrick, Если есть вопросы, пишите.
Написал вчера вам на эл.почту насчет настроек, пока ответ не получил насчет моей идеи
__________________
Здесь дейтинг со смартлинком, все гео
Mrtrick вне форума   Ответить с цитированием

Реклама
Старый 28.12.2018, 16:42   #72
JakoKruzo
SEO programming
 
Аватар для JakoKruzo
 
Регистрация: 04.06.2008
Сообщений: 616
Репутация: 58907

ТопикСтартер Re: MassArticleParser - массовый парсинг статей. Один парсер для всех сайтов.

Mrtrick, ваши предложения получил. Обдумаю, как лучше, и сделаю.
Цитата:
главная проблема это правка thread_events.txt и events.txt, например когда мне нужно какие то функции отключить перед сохранением статьи, то там уже можно запутаться
Согласен, и у меня уже есть кое-какие идеи на счёт этого Сделаю в настройках возможность указать, какие функции выполнять, а какие нет.
__________________
jakodorgen.ru
JakoKruzo вне форума   Ответить с цитированием
Сказали спасибо:
Старый 26.01.2019, 14:03   #73
JakoKruzo
SEO programming
 
Аватар для JakoKruzo
 
Регистрация: 04.06.2008
Сообщений: 616
Репутация: 58907

ТопикСтартер Re: MassArticleParser - массовый парсинг статей. Один парсер для всех сайтов.

Обновление 2.1.4.

Добавлены возможность указывать выборочные настройки (галочка "custom settings") и возможность включения-отключения работы отдельных частей скриптов в events.txt и thread_events.txt (галочка "tagged scripts") .



Выборочные настройки нужны для удобства при частом изменении отдельных настроек. Можно указывать хоть одну настройку, а можно хоть все.



Выборочные настройки либо заменяют основные, либо их значения добавляются к значениям основных, для чего нужно указать плюс в начале значения настройки:



При редактировании выборочных настроек можно самому в таблицу вписывать имена настроек, а можно нажать правой кнопкой мыши и выбрать из списка. Данные сохраняются в момент закрытия формы (через крестик тоже) и при смене, добавлении пресета. Для удаления настройки выделите всю строку и нажмите Delete на клавиатуре.

Tagged scripts: тут ставим галочки, какие блоки скрипта включить. Если галочка Tagged scripts не стоит, то все блоки работают. А если стоит, то работать будут только те блоки, которые отмечены.
Блоки для пометки скриптов так делаются:

[#УДАЛЕНИЕ_ИМЁН_САЙТОВ]
$output=RemSiteNames($output);
[/УДАЛЕНИЕ_ИМЁН_САЙТОВ]
[#ПРОКСИРОВАНИЕ_ИЗОБРАЖЕНИЙ]
$output=ImgPrx($output);
[/ПРОКСИРОВАНИЕ_ИЗОБРАЖЕНИЙ]


Открывающий тег с решётки начинается: [#Имя блока] , а закрывающий как обычно - [/Имя блока]. Нижний пробел, как в примере, делать не обязательно. Можно любые символы использовать.




Сделал, чтобы файлы настроек лежали в папке settings, а шаблоны в templates. Появилась папка presets для выборочных настроек.


Протокол tls теперь не надо в скрипте прописывать. Он прописан в last_settings.txt: *security_protocol_type=tls12


Появились новые настройки:

*MainBlockDetect=
*DisableAutoTrimTop=0
*DisableAutoTrimBottom=0
*HardTrim=
*DisableAutoHeading=0



Если программа не находит контент, то можно указать html блок, из которого его брать:

*MainBlockDetect=какая-либо строка из основного блока

Можно несколько строк указать через запятую: *MainBlockDetect=какая-либо строка из основного блока,ещё текст
В таком случае контент будет браться из блока, содержащего все указанные строки. Пример:
<div class="c1">
<p>Этот текст есть перед всеми статьями.</p>
<h1>Заголовок статьи</h1>
Текст статьи.
</div>


Настройка: *MainBlockDetect=class="c1"
Если class="c1" есть не только у главного блока, то указываем несколько строк:
*MainBlockDetect=class="c1",Этот текст есть перед всеми статьями

Допустим, что на одних страницах выводится class="c1" , а на других class="c2". Тогда нужно задать настройку так:
*MainBlockDetect={class="c1"},{class="c2"}
Так главным будет назначаться блок, который содержит либо class="c1" , либо class="c2".
Можно указать: *MainBlockDetect={class="c1",текст есть перед},{class="c2",текст есть перед}
Так главным будет назначаться блок, который содержит либо сроку "class="c1"" и строку "текст есть перед", либо строку "class="c2"" и строку "текст есть перед".

*DisableAutoTrimTop=1 - отключает автоматическую подчистку (автообрезку) начала статьи.
*DisableAutoTrimBottom=1 - отключает автоматическую подчистку конца статьи. Эта настройка нужна, если в конце статьи удаляется нужный контент (например, бывает, если статья заканчивается таблицей).

У этих настроек есть расширенная форма. Можно указать начало и конец статьи.

Допустим, нужно достать только текст статьи из этого кода:

<div class="test">
<div class="c1">
Текст статьи.
</div>
<div class="comments">
Комментарии.
</div>
</div>


Ставим:
*DisableAutoTrimTop=1{<div class="c1">}
*DisableAutoTrimBottom=1{<div class="comments">,</div>}


Первая настройка значит, что статья начинается после строки <div class="c1">. Другими словами, статья обрезается сверху по <div class="c1"> включительно. Чтобы <div class="c1"> не удалялся, то надо добавить к настройке {L}: *DisableAutoTrimTop=1{<div class="c1">}{L}
В настройке DisableAutoTrimBottom указано две строки. Это пример ступенчатой обрезки (если нельзя одной строкой задать конец статьи). Сначала с конца статьи ищется <div class="comments">, а потом </div>. В DisableAutoTrimTop тоже можно делать ступенчатую обрезку, но поиск строк идёт с начала статьи.

*DisableAutoHeading=1 - отключает добавление заголовка h1, которое делается, если в статье нет такового.


Есть ещё один, более низкоуровневый способ достать со страницы нужные данные.
*HardTrim={<div class="c1">}-{<div class="comments">,</div>}
В первом блоке {} указывается обрезка сверху, а во втором снизу.
Этот пример аналогичен настройкам:
*DisableAutoTrimTop=1{<div class="c1">}
*DisableAutoTrimBottom=1{<div class="comments">,</div>}


{L} тоже можно добавлять: *HardTrim={<div class="c1">}{L}-{<div class="comments">,</div>}{L}

HardTrim обрезает код всей страницы сразу после его получения, до всех обработок. Поэтому в нём можно задавать html-комментарии, а в DisableAutoTrimTop и DisableAutoTrimBottom нельзя, т.к. комментарии удаляются при обработке страницы. Автообрезка работает для кода статьи, а жёсткая обрезка (HardTrim) работает с кодом всей станицы. Автообрезка работает после жёсткой обрезки, поэтому если она не нужна (а при HardTrim-е она как правило лишняя), её стоит отключить.

---------- Добавлено 26.01.2019 в 14:25 ----------

Для того, чтобы пользоваться новой версией, скопируйте в папку с ней файл activation.dat из папки со старой версией. Либо создайте в папке со старой версией папки presets, settings, templates и скопируйте в неё новый файл MassArticleParser.exe.
JakoKruzo вне форума   Ответить с цитированием
Сказали спасибо:
Старый 26.01.2019, 22:12   #74
JakoKruzo
SEO programming
 
Аватар для JakoKruzo
 
Регистрация: 04.06.2008
Сообщений: 616
Репутация: 58907

ТопикСтартер Re: MassArticleParser - массовый парсинг статей. Один парсер для всех сайтов.

Сделал обновление 2.1.4.4. Пофиксил баги. Кто успел скачать обновление 2.1.4, скачайте версию 2.1.4.4.
JakoKruzo вне форума   Ответить с цитированием
Сказали спасибо:
Старый 29.01.2019, 09:15   #75
Mrtrick
Аспирант
 
Регистрация: 04.10.2013
Сообщений: 156
Репутация: 10946

По умолчанию Re: MassArticleParser - массовый парсинг статей. Один парсер для всех сайтов.

Цитата:
Сообщение от JakoKruzo Посмотреть сообщение
Обновление 2.1.4.
При редактировании выборочных настроек можно самому в таблицу вписывать имена настроек, а можно нажать правой кнопкой мыши и выбрать из списка.
У меня при нажатии на правую кнопку нет списка с названиями настроек.
Записал видео https://i.imgur.com/dpJvQiF.gifv

P.S обновление мощное, спасибо что прислушивался к пожеланиям и реализовал на высшем уровне!
Mrtrick вне форума   Ответить с цитированием
Старый 29.01.2019, 10:38   #76
JakoKruzo
SEO programming
 
Аватар для JakoKruzo
 
Регистрация: 04.06.2008
Сообщений: 616
Репутация: 58907

ТопикСтартер Re: MassArticleParser - массовый парсинг статей. Один парсер для всех сайтов.

Цитата:
Сообщение от Mrtrick Посмотреть сообщение
У меня при нажатии на правую кнопку нет списка с названиями настроек.
Нажмите сразу, когда ячейка ещё не выделена, и нет мигающего курсора, а не после перевода ячейки в режим редактирования.
JakoKruzo вне форума   Ответить с цитированием
Старый 29.01.2019, 10:39   #77
Mrtrick
Аспирант
 
Регистрация: 04.10.2013
Сообщений: 156
Репутация: 10946

По умолчанию Re: MassArticleParser - массовый парсинг статей. Один парсер для всех сайтов.

Цитата:
Сообщение от JakoKruzo Посмотреть сообщение
Нажмите сразу, когда ячейка ещё не выделена, и нет мигающего курсора, а не после перевода ячейки в режим редактирования.
Получилось, не сразу понял.
Mrtrick вне форума   Ответить с цитированием
Старый 09.02.2019, 20:16   #78
JakoKruzo
SEO programming
 
Аватар для JakoKruzo
 
Регистрация: 04.06.2008
Сообщений: 616
Репутация: 58907

ТопикСтартер Re: MassArticleParser - массовый парсинг статей. Один парсер для всех сайтов.

Обновление 2.1.5.

Исправлена ошибка, из-за которой не скачивались изображения, пути которых начинаются с двойного слэша, при https.

В режиме скачивания картинок теперь можно указать белый список расширений:
*downloadimages=all{images,100,100,jpg,gif,png,jpeg}

Так будут скачиваться только изображения с расширениями jpg, gif, png и jpeg.

Появилась настройка: *OriginalCode=1
Она отключает обработку контента (чистку, замену относительных путей на абсолютные и прочее).

Сделал кликабельными "Profile" и "Template" и добавил ссылку "View site list", чтобы открывать соответствующие файлы.

В скрипте появилась возможность вывода статуса потока (работает только в thread_events.txt):
SetStatus('Hello, world!');

Эта возможность полезна в случае, когда, например, после завершения парсинга сайта запускается какая-то долгая функция. Вот пример такой функции - MoveImages. Эта функция создаёт для каждой статьи свою папку и помещает в неё картинки этой статьи. Файл статьи переименовывается в транслит с подстановкой случайной даты: 2018-12-15-nazvanie-statii.htm. Пути изображений меняются. В настройках должно быть включено сохранение статей каждого сайта в отдельную папку: *savetofolders=1 . Вызов этой функции нужно прописать в событии завершения парсинга сайта:
function on_Complete(error){
if(error==1){return();}
MoveImages();
}
JakoKruzo вне форума   Ответить с цитированием
Сказали спасибо:
Старый 17.02.2019, 17:32   #79
JakoKruzo
SEO programming
 
Аватар для JakoKruzo
 
Регистрация: 04.06.2008
Сообщений: 616
Репутация: 58907

ТопикСтартер Re: MassArticleParser - массовый парсинг статей. Один парсер для всех сайтов.

В дополнение к функции парсинга тегов изображений написал функцию загрузки изображений. Она скачивает изображения из статьи и заменяет в тегах их пути. Пример использования:

$output=GetAllImages($page_data);
$output=DownloadImages($output,$article_dir+'\images');
JakoKruzo вне форума   Ответить с цитированием
Сказали спасибо:
Старый 17.02.2019, 17:35   #80
Mrtrick
Аспирант
 
Регистрация: 04.10.2013
Сообщений: 156
Репутация: 10946

Smile Re: MassArticleParser - массовый парсинг статей. Один парсер для всех сайтов.

Цитата:
Сообщение от JakoKruzo Посмотреть сообщение
В дополнение к функции парсинга тегов изображений написал функцию загрузки изображений. Она скачивает изображения из статьи и заменяет в тегах их пути. Пример использования:

$output=GetAllImages($page_data);
$output=DownloadImages($output,$article_dir+'\images');
Полезная функция, очень пригодилась, вопрос с картинками полностью программа закрыла, да что тут говорить и со статьями тоже
Mrtrick вне форума   Ответить с цитированием
Ответ

Метки
parser , парсер , парсинг




Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Текущее время: 07:18. Часовой пояс GMT +3.

Регистрация Справка Календарь Поддержка Все разделы прочитаны