1 место Универсальный экстрактор™ контента (основной статьи страницы)

slcor

Client
Регистрация
08.03.2010
Сообщения
25
Благодарностей
13
Баллы
3
  • Спасибо
Реакции: Lord_Alfred

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
а если изображений несколько - можно получить все?
Все изображения и без такого сложного парсера можно получить (просто регуляркой из html-кода взять всё, что в тегах img лежит).
а что значит "какое-то"? рандомное?
Там берется изображение скорее всего из meta (opengraph, schemaorg и тд)
 

AlexPetrov

Новичок
Регистрация
28.02.2020
Сообщения
28
Благодарностей
15
Баллы
3
Робыть=)
Спасибо.
Еще бы как-то отсекать рандомное г-но типа

ср, 5 декабря, 14:00
Обратите внимание на полезные советы, как украсить дом на Новый год 2019.
Читайте также о том, чем поразят звезды в конце 2019 года – гороскоп для всех знаков зодиака.
Смотрите видео, какими продуктами на новогодний стол надо запастись уже сейчас:
Присоединяйтесь к каналу "Украина" в меседжерах, чтобы узнавать первыми об актуальных и избранных материалах по ссылкам:
Viber – Telegram –
загрузка...
 

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18
не могу установить зависимости
выдает такую ошибку http://prntscr.com/rdx3kw
что я делаю не так?
 

vesb

Client
Регистрация
13.03.2010
Сообщения
139
Благодарностей
18
Баллы
18
Что-то не совсем понял. Поставил article.Content и получаю в тексте, что он вырезает и ссылки и картинки из html статьи. Это так и должно быть или можно поправить, чтобы оставлял?

Все картинки вот такие получаются
<img width="350" height="261" alt="" data-srcset=" 350w, 300w" sizes="(max-width: 350px) 100vw, 350px" data-src=" src=" srcset=" 350w, 300w"/>

а ссылки вот такие
<a href=">Анкор ссылки</a>
 

intagens

Client
Регистрация
28.09.2015
Сообщения
209
Благодарностей
31
Баллы
28

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 992
Благодарностей
4 458
Баллы
113

k1nop

Client
Регистрация
13.05.2014
Сообщения
12
Благодарностей
10
Баллы
3
Lord_Alfred, благодарю за то, что поделился такой темкой, за то что скрипт продуман основательно, а не выложен на отшибись. На данный момент, это самое годное решение, которое я видел. По моему мнению, в конкурсах нужно устанавливать голосование по нескольким критериям (как в школе за сочинение две оценки ставили за идею и орфографию). Основными критериями могут быть - полезность и сама реализация шаблона (имею ввиду рациональность создания программного кода). В данном случае, полезность - 100%, реализация - 100%. Всегда приятно находить, что-то новое в шаблонах участников конкурсов.
 
  • Спасибо
Реакции: Lord_Alfred

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
что я делаю не так?
Astraport верно написал - нужно установить git (об этом написано в пункте №2).

Поставил article.Content и получаю в тексте, что он вырезает и ссылки и картинки из html статьи. Это так и должно быть или можно поправить, чтобы оставлял?
Это всё из-за того, что включено удаление ссылок в шаблоне ;-) Выключи его просто и всё ок будет.

@k1nop, благодарю! :dh:
 
  • Спасибо
Реакции: Andrew Shell и vesb

vesb

Client
Регистрация
13.03.2010
Сообщения
139
Благодарностей
18
Баллы
18
Спасибо! Мой голос за вас
 
  • Спасибо
Реакции: Lord_Alfred
Регистрация
23.03.2015
Сообщения
1 222
Благодарностей
765
Баллы
113
Можно вопрос, шаблон парсит чистый текст или вместе с картинками(если такие имеются)?
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
Можно вопрос, шаблон парсит чистый текст или вместе с картинками(если такие имеются)?
В выложенном варианте парсится чистый текст, а чтоб были картинки (и другие теги), то я выше писал что нужно заменить в readability_cli.go + нужно будет отключить в шаблоне очистку ссылок.
 
  • Спасибо
Реакции: KolkaPetkinSyn

vesb

Client
Регистрация
13.03.2010
Сообщения
139
Благодарностей
18
Баллы
18
Оставляю ссылки и картинки - они почему-то в таком виде парсятся
<img src="https://site. com/wp-content/uploads/2019/08/post_5d4e918c3304f-600x400. jpg"
то есть перед "com" и перед "jpg" появляются пробелы. Это можно как-то исправить?
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
то есть перед "com" и перед "jpg" появляются пробелы. Это можно как-то исправить?
Да, это очистка контента срабатывает (т.к. данный парсер я пилил для текстового контента без тегов).

Для того, чтобы это отключить - нужно закомментить следующие регулярки в последнем C#-кубике (fix content):
C#:
// fix spaces around some symbols
content = Regex.Replace(content, @"\s+([!%\),\.:;\?\]\}]+)", "$1");
content = Regex.Replace(content, @"([\.!,\?])([^\s\.!,\?]+)", "$1 $2");
Конечно, в текстовке тогда не будут исправляться концы строк и пробелы между некоторыми символами, но тут уж никуда не денешься :-)
 
  • Спасибо
Реакции: vesb

vesb

Client
Регистрация
13.03.2010
Сообщения
139
Благодарностей
18
Баллы
18
Конечно, в текстовке тогда не будут исправляться концы строк и пробелы между некоторыми символами, но тут уж никуда не денешься :-)
Спасибо. Ну эти все замены можно будет уже потом сделать
 
  • Спасибо
Реакции: Lord_Alfred

seodima

Client
Регистрация
21.09.2014
Сообщения
199
Благодарностей
60
Баллы
28
Это лучший шаб. Мой голос за Вас. Я вообще так много времени убил на это средствами зенки и С#, но так и более-менее идеальный вариант не сделал.
 
  • Спасибо
Реакции: Lord_Alfred

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
Это лучший шаб. Мой голос за Вас. Я вообще так много времени убил на это средствами зенки и С#, но так и более-менее идеальный вариант не сделал.
Большое спасибо!
Да, у меня тоже был опыт ковыряния C# для этой задачи, но я не довел то решение до хоть сколько-то вменяемых результатов, поэтому потом и начал искать готовые (и что самое важное - актуальные!) решения, которые можно было бы прикрутить в ZP :-)
 

dafaroff

Client
Регистрация
03.05.2011
Сообщения
76
Благодарностей
137
Баллы
33
А зачем использовать go? Есть же решения на c#, в виде dll.
Например SmartReader
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
А зачем использовать go? Есть же решения на c#, в виде dll.
Например SmartReader
На это несколько причин (и все они скорее всего субъективны):
1. SmartReader почти никто не знает, у него мало Stars/Forks на гитхабе - я о нем даже не слышал ранее
2. Он использует AngleSharp
3. Go будет меньше тратить ресурсы CPU из-за его архитектуры

По качеству не буду оценивать - он тоже базируется на Readability.js, тоже есть тесты (что удивительно).

Может быть тут найдутся желающие и пробенчат их вместе, у меня как раз 30к ссылок есть, которые я прогонял через свой парсер, чтоб отловить баги :-)
 
  • Спасибо
Реакции: dafaroff

dafaroff

Client
Регистрация
03.05.2011
Сообщения
76
Благодарностей
137
Баллы
33
На это несколько причин (и все они скорее всего субъективны):
1. SmartReader почти никто не знает, у него мало Stars/Forks на гитхабе - я о нем даже не слышал ранее
2. Он использует AngleSharp
3. Go будет меньше тратить ресурсы CPU из-за его архитектуры

По качеству не буду оценивать - он тоже базируется на Readability.js, тоже есть тесты (что удивительно).

Может быть тут найдутся желающие и пробенчат их вместе, у меня как раз 30к ссылок есть, которые я прогонял через свой парсер, чтоб отловить баги :-)
Давай ссылки, попробую сравнить.
 
  • Спасибо
Реакции: Lord_Alfred

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113

Вложения

  • 886,9 КБ Просмотры: 248

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 992
Благодарностей
4 458
Баллы
113
Может быть тут найдутся желающие и пробенчат их вместе, у меня как раз 30к ссылок есть, которые я прогонял через свой парсер, чтоб отловить баги :-)
Я писал ранее, что тестил тему и как раз с SmartReader благодаря помощи @specialist . Меня результат вполне устроил.
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 992
Благодарностей
4 458
Баллы
113
  • Спасибо
Реакции: Lord_Alfred

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
Ну ладно)
Будем надеяться, что dafaroff сделает хорошее сравнение и расскажет о плюсах/минусах каждой из либ с замерами.
Это же прекрасно, если найдётся ещё лучшее решение - все только в выигрыше будут :-)
 
  • Спасибо
Реакции: Astraport

dafaroff

Client
Регистрация
03.05.2011
Сообщения
76
Благодарностей
137
Баллы
33
В общем потестил SmartReader и реализацию на go от @Lord_Alfred
Часа 2 промучался, пока удалось скомпилировать рабочую dll - в Visual Studio работает, в ZennoPoster -е ни в какую.
Тестировал на стареньком ноутбуке
51880

Через NordVpn
51882

В шаблоне на go удалил цикл.
В шаблоне на SmartReader не делал чистку и прочее - только статья после чистки как она есть.

SmartReader проигрывает в скорости, виснут потоки.
Запускал 2 шаблона одновременно в 10 потоков каждый
51877
После сравнения скорости, замерил нагрузку.
Запускал шаблоны по отдельности, каждый в 10 потоков.
Нагрузка почти одинаковая, шаблон на go чуть больше грузит диск и проц, но разница не заметна.

51883

51884

Что получилось в итоге, ничего не удалял, не изменял, парсил первые 1 000 ссылок из файла.
В архиве шаблон и результат парсинга
Скачать с яндекс диска
шаблон SmartReader
шаблон go

SmartReader проще настраивать, не нужно ставить дополнительные программы.
Реализация от @Lord_Alfred быстрее и стабильнее, но нужно дополнительно устанавливать софт.
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
  • Спасибо
Реакции: dafaroff

Zoron

Client
Регистрация
24.09.2014
Сообщения
145
Благодарностей
39
Баллы
28
Запускаю шаблон, но получаю ошибку:
Подпроект readability. Выполнение действия CSharp OwnCode: fix content. Could not find file 'D:\ZP\Универсальный экстрактор контента\cache\fox4kc.com\d7dd584862b52bec9fd6d38d5ef0d54c.txt'.
Id ошибки - 7bff479e-abad-482d-92b0-250a6b6f15ba.

Также приложил скриншот. Прошу подсказать, почему не работает. Спасибо.
51932
 
Последнее редактирование:

Zoron

Client
Регистрация
24.09.2014
Сообщения
145
Благодарностей
39
Баллы
28
Запускаю шаблон, но получаю ошибку:
Подпроект readability. Выполнение действия CSharp OwnCode: fix content. Could not find file 'D:\ZP\Универсальный экстрактор контента\cache\fox4kc.com\d7dd584862b52bec9fd6d38d5ef0d54c.txt'.
Id ошибки - 7bff479e-abad-482d-92b0-250a6b6f15ba.

Также приложил скриншот. Прошу подсказать, почему не работает. Спасибо.
Посмотреть вложение 51932
Уже разобрался ) В пути к шаблону не должно быть пробелов либо взять путь в кавычки...
 
Последнее редактирование:
  • Спасибо
Реакции: Lord_Alfred

zennoman

Client
Регистрация
14.09.2012
Сообщения
35
Благодарностей
25
Баллы
18
В ПМ'е (5.9.9.1) в readability_example.xmlz вылетает ошибка "Debug Thread Error". В ЗП проект бесконечно висит в "Выполняющихся".

51951


Коллеги, подскажите, что пофиксить?
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)