Начало и конец искомого текста для изображения и текста статьи.

InstantCMS 2.X
#1 21 октября 2021 в 23:08

Здравствуйте. Настраиваю Парсер контента от dwd

Изучил мануал http://codeplace.ru/manual/sozdanie-saitov/sistemy-upravlenija-saitom-cms/instantcms-2-parser-kontenta.html 

и соотвественно посмотрел видео обучение.

Вот ссылка, от куда я стараюсь добавить задачу на парсинг, новость с которой беру код из текста: https://belnaviny.by/proishestviya/v-minske-muzhchina-vygulival-sobaku-i-napal-na-milicionera.html

Общие настройки сделал (кажется), так же смог найти заголовок и анонс. Но, так как в коде я не сильно силен, уже несколько часов застрял на тестере стратегий поиска на странице изображения и текста статьи.

Вот начало и конец искомого текста заголовка новости: 

Изображение

Вот начало и конец искомого текста анонса новости

Изображение

В тестере стратегий, заголовок и анонс показывает так как в донорской новости.

 

Но когда я беру изображение, как бы ни искал код начала и конца картинки, всегда показывает ее с какими то ошибками или с лишней информацией.

Вот на пример начало и конец искомого текста для изображения :

Изображение

И всегда получается либо код лишний показывает, либо вообще ничего:

Изображение

 

 

Так же и с текстом новости, ну не могу я понять как  взять именно текст самой новости

Изображение

 

Беру на пример начало и конец искомого текста, и ничего не найдено, либо что то еще пробую, показывает анонс новости.

Изображение

 

Подскажите пожалуйста на пальцах, что именно я делаю не так? Хочется самому разобраться. 

 

 

 

#2 21 октября 2021 в 23:36

html достаточно прост. С какого тега начинается, тем и закрываться должен. Почти всегда так, если не усложнять.

Заголовок. Вы берете: <h1… и соотв. можно не глядеть далее, закрыть его надо </h1>

Анонс: H2, а на фото у вас, закрываться чем: "/p"? (И этот короткий кусок точно анонс: Происшествие случилось 17 октября 2021 года)
Фото. Вы берете начало и конец: <figure..>вот тут много всего</figure>
Это блок целый, там много всего. Я не знаю, как парсится img не читал мануал, но думаю может быть цель определяется более узко, по css в img?

  1. <figure itemscope="" itemtype="http://schema.org/ImageObject" class="figure post__image-container">
  2. <img class="figure-img img-fluid rounded post__image" src="***/belnaviny.by-1-87.jpg?v=1634793770" itemprop="image" alt="МВД Беларуси">
  3. <meta itemprop="width" content="1200">
  4. <meta itemprop="height" content="800">
  5. <link itemprop="contentUrl" href="https://***/v-minske-muzhchina-vygulival-sobaku-i-napal-na-milicionera.html">
  6. <figcaption itemprop="caption" class="figure-caption post__image-caption">МВД Беларуси (фото носит иллюстративный характер)</figcaption>
  7. </figure>

А то много тут...

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

#3 22 октября 2021 в 00:33

 

  • <figure itemscope="" itemtype=«schema.org/ImageObject» class=«figure post__image-container»>
  • <img class=«figure-img img-fluid rounded post__image» src="***/belnaviny.by-1-87.jpg?v=1634793770" itemprop=«image» alt=«МВД Беларуси»>
  • <meta itemprop=«width» content=«1200»>
  • <meta itemprop=«height» content=«800»>
  • <link itemprop=«contentUrl» href=«https://***/v-minske-muzhchina-vygulival-sobaku-i-napal-na-milicionera.html»>
  • <figcaption itemprop=«caption» class=«figure-caption post__image-caption»>МВД Беларуси (фото носит иллюстративный характер)</figcaption>
  • </figure>

 

Evg

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

Изображение

 

В мануале написанно, Любые варианты, которые возвращают код, не содержащий полного тега <img src="..."> не будут правильно обработаны парсером. Учитывайте это при натройке полей.

Так же показывается тег <div, а я в упор не вижу этого тега в цитируемом коде выше. 

Изображение

#4 22 октября 2021 в 09:36

Тут приходится гадать. Возможно имеет смысл просить у автора дополнения? (может, что не так с figure)

Попробуйте сделать парсинг img захватывая всю статью с: <div id=«article-body» class=«article__body» itemprop=«articleBody»>
В этой статье 1 фото.

#5 22 октября 2021 в 16:56

А разве там нельзя просто по другим атрибутам захватывать? Я не особо изучал этот парсер, но в моем случае это проще всего взять класс и готово. Ну если я правильно понял то можно ссылку забрать так
НАЧАЛО:  post__image" src="
КОНЕЦ:     ?v=

Но конец как то .jpg нужно сохранить

А там нет XPath. Просто вариант через него

  1. //figure[@class='figure post__image-container']/img[@class='figure-img img-fluid rounded post__image']/@src
#6 22 октября 2021 в 17:02

Возможно имеет смысл просить у автора дополнения? (может, что не так с figure)

Evg

Если честно, сильно не хочется отвлекать авторов просто так. Я понимаю что им постоянно многие надоедают подобными вопросами.

Добавлено спустя 3 минуты

А разве там нельзя просто по другим атрибутам захватывать?

Clear

Автор дополнения, в мануале, css захватывал.

ИзображениеИзображение

Я уже почти смирился с тем что тот сайт который я пытаюсь парсить, не парсится.Изображение

#7 22 октября 2021 в 17:08

 Aliaksandr, Все там парсится спокойно. Обычный сайт. Если нужна тупо ссылка то так и будет
НАЧАЛО:  post__image" src="
КОНЕЦ:     ?v=

Добавлено спустя 1 минуту

Не забывай что у тебя еще есть не только код но и из МЕТА можно забрать

  1. <meta property="og:image" content="https://belnaviny.by/wp-content/uploads/2021/10/belnaviny.by-1-87-85x64.jpg?v=1634793770">
Добавлено спустя 2 минуты

Там есть заменить может вариант что то на что то

 

#8 22 октября 2021 в 17:32

Там есть заменить может вариант что то на что то

Clear

А можно показать на картинку, начало искомого текста и конец? Я сам не разберусь. С учетом того что я это усиленно пытаюсь решить уже второй день...

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.