1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

Пресет Парсинг RSS 1.0

Пример парсинга RSS лент

  1. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.347
    Симпатии:
    2.096
    Цель данной статьи - показать общее направление в парсинге RSS. В качестве примера будет использован RSS нашего форума: http://a-parser.com/forum/-/index.rss. Данный пресет можно использовать и для других сайтов, но ввиду того, что везде могут по-разному генерироваться ленты и использоваться разные стандарты, возможно нужно будет вносить некоторые изменения.

    Сам процесс парсинга довольно прост и состоит в основном из поиска нужной информации с помощью регулярных выражений и ее вывода в результирующий файл.
    [​IMG]
    [​IMG]
    • Используем Net::HTTP Net::HTTP
    • Прокси можно не использовать
    • Сначала парсим все <item>...</item>
    • Потом из полученного массива парсим нужную информацию. В примере это: Заголовок, Дата публикации, Ссылка и Контент.
    • Очищаем от лишнего (в примере от HTML тегов и сущностей, а также других, остаточных строк).
    • Выводим результат, используя возможности Template Toolkit, в нужном формате.
    При парсинге таким способом, если в какой-то момент не будет нужного параметра в теле ленты RSS, он просто будет пустой, при этом целостность и соответствие информации не нарушится (по спецификации RSS, все параметры необязательны, поэтому возможен пропуск).

    В результате получим файл с таким содержанием:
    eyJwcmVzZXQiOiJSU1MiLCJ2YWx1ZSI6eyJwcmVzZXQiOiJSU1MiLCJwYXJzZXJz
    IjpbWyJOZXQ6OkhUVFAiLCJkZWZhdWx0Iix7InR5cGUiOiJjdXN0b21SZXN1bHQi
    LCJyZXN1bHQiOiJkYXRhIiwicmVnZXgiOiI8aXRlbT4oLis/KTxcXC9pdGVtPiIs
    InJlZ2V4VHlwZSI6InNnIiwicmVzdWx0VHlwZSI6ImFycmF5IiwiYXJyYXlOYW1l
    IjoiaXRlbXMiLCJyZXN1bHRzIjpbIml0ZW0iXX0seyJ0eXBlIjoib3ZlcnJpZGUi
    LCJpZCI6InVzZXByb3h5IiwidmFsdWUiOmZhbHNlfSx7InR5cGUiOiJjdXN0b21S
    ZXN1bHQiLCJyZXN1bHQiOlsiaXRlbXMiLCJpdGVtIl0sInJlZ2V4IjoiPHRpdGxl
    PiguKz8pPFxcL3RpdGxlPiIsInJlZ2V4VHlwZSI6InMiLCJyZXN1bHRUeXBlIjoi
    YXJyYXkiLCJhcnJheU5hbWUiOiJ0aXRsZXMiLCJyZXN1bHRzIjpbInRpdGxlIl19
    LHsidHlwZSI6ImN1c3RvbVJlc3VsdCIsInJlc3VsdCI6WyJpdGVtcyIsIml0ZW0i
    XSwicmVnZXgiOiI8cHViRGF0ZT4oLis/KTxcXC9wdWJEYXRlPiIsInJlZ2V4VHlw
    ZSI6InMiLCJyZXN1bHRUeXBlIjoiYXJyYXkiLCJhcnJheU5hbWUiOiJkYXRlcyIs
    InJlc3VsdHMiOlsiZGF0ZSJdfSx7InR5cGUiOiJjdXN0b21SZXN1bHQiLCJyZXN1
    bHQiOlsiaXRlbXMiLCJpdGVtIl0sInJlZ2V4IjoiPGxpbms+KC4rPyk8XFwvbGlu
    az4iLCJyZWdleFR5cGUiOiJzIiwicmVzdWx0VHlwZSI6ImFycmF5IiwiYXJyYXlO
    YW1lIjoibGlua3MiLCJyZXN1bHRzIjpbImxpbmsiXX0seyJ0eXBlIjoiY3VzdG9t
    UmVzdWx0IiwicmVzdWx0IjpbIml0ZW1zIiwiaXRlbSJdLCJyZWdleCI6Iig/Ojxj
    b250ZW50fDxkZXNjcmlwdGlvbikuKz8oLis/KSg/OjxcXC9jb250ZW50fDxcXC9k
    ZXNjcmlwdGlvbikiLCJyZWdleFR5cGUiOiJzIiwicmVzdWx0VHlwZSI6ImFycmF5
    IiwiYXJyYXlOYW1lIjoiZGVzY3MiLCJyZXN1bHRzIjpbImRlc2MiXX0seyJ0eXBl
    Ijoib3ZlcnJpZGUiLCJpZCI6ImRldGVjdGNoYXJzZXQiLCJ2YWx1ZSI6dHJ1ZX0s
    eyJ0eXBlIjoib3ZlcnJpZGUiLCJpZCI6ImZvcm1hdHJlc3VsdCIsInZhbHVlIjoi
    JHF1ZXJ5XFxuXFxuXG5bJSBpID0gMDtcbldISUxFIGkgPCBpdGVtcy5zaXplO1xu
    dGl0bGVzLiRpLnRpdGxlIF9cIiAtIFwiIF8gZGF0ZXMuJGkuZGF0ZSBfXCJcXG5c
    IjtcbmxpbmtzLiRpLmxpbmsgX1wiXFxuXCI7XG5kZXNjcy4kaS5kZXNjIF9cIlxc
    bioqKioqKioqKipcXG5cIjtcbmkgPSBpICsgMTtcbkVORCAlXVxuIn1dXSwicmVz
    dWx0c0Zvcm1hdCI6IiRwMS5wcmVzZXQiLCJyZXN1bHRzU2F2ZVRvIjoiZmlsZSIs
    InJlc3VsdHNGaWxlTmFtZSI6IiRkYXRlZmlsZS5mb3JtYXQoKS50eHQiLCJhZGRp
    dGlvbmFsRm9ybWF0cyI6W10sInJlc3VsdHNVbmlxdWUiOiJubyIsInF1ZXJ5Rm9y
    bWF0IjpbIiRxdWVyeSJdLCJ1bmlxdWVRdWVyaWVzIjpmYWxzZSwic2F2ZUZhaWxl
    ZFF1ZXJpZXMiOmZhbHNlLCJpdGVyYXRvck9wdGlvbnMiOnsib25BbGxMZXZlbHMi
    OmZhbHNlLCJxdWVyeUJ1aWxkZXJzQWZ0ZXJJdGVyYXRvciI6ZmFsc2V9LCJyZXN1
    bHRzT3B0aW9ucyI6eyJvdmVyd3JpdGUiOmZhbHNlfSwiZG9Mb2ciOiJubyIsImtl
    ZXBVbmlxdWUiOiJObyIsIm1vcmVPcHRpb25zIjpmYWxzZSwicmVzdWx0c1ByZXBl
    bmQiOiIiLCJyZXN1bHRzQXBwZW5kIjoiIiwicXVlcnlCdWlsZGVycyI6W10sInJl
    c3VsdHNCdWlsZGVycyI6W3sic291cmNlIjpbMCxbImRlc2NzIiwiZGVzYyJdXSwi
    dHlwZSI6ImRlY29kZUh0bWwiLCJhcnJheSI6ImRlc2NzIiwidG8iOiJkZXNjIn0s
    eyJzb3VyY2UiOlswLFsiZGVzY3MiLCJkZXNjIl1dLCJ0eXBlIjoic3RyaW5nUmVw
    bGFjZSIsImFycmF5IjoiZGVzY3MiLCJzZWFyY2giOiJlbmNvZGVkPjwhW0NEQVRB
    WyIsInJlcGxhY2UiOiIiLCJ0byI6ImRlc2MifSx7InNvdXJjZSI6WzAsWyJkZXNj
    cyIsImRlc2MiXV0sInR5cGUiOiJzdHJpbmdSZXBsYWNlIiwiYXJyYXkiOiJkZXNj
    cyIsInNlYXJjaCI6Il1dPiIsInJlcGxhY2UiOiIiLCJ0byI6ImRlc2MifSx7InNv
    dXJjZSI6WzAsWyJkZXNjcyIsImRlc2MiXV0sInR5cGUiOiJyZW1vdmVIdG1sIiwi
    YXJyYXkiOiJkZXNjcyIsInRvIjoiZGVzYyJ9LHsic291cmNlIjpbMCxbImRlc2Nz
    IiwiZGVzYyJdXSwidHlwZSI6InN0cmluZ1JlcGxhY2UiLCJhcnJheSI6ImRlc2Nz
    Iiwic2VhcmNoIjoiPCFbQ0RBVEFbIiwicmVwbGFjZSI6IiIsInRvIjoiZGVzYyJ9
    XSwiY29uZmlnT3ZlcnJpZGVzIjpbXX19
     
    Gedzon, limoshkaa и Force68 нравится это.

Поделиться этой страницей