Как получить отрывок из веб-статьи / размещенной пользователем ссылки? - PullRequest
0 голосов
/ 29 ноября 2011

У меня есть сайт, где пользователи могут отправлять контент на основе ссылки.Есть ли способ определить основной контент по ссылке и взять тизер?Например, на Digg все записи имеют небольшой фрагмент / выдержку из ссылки.Это именно то, чего я хочу.

Я работаю с Ruby on Rails.Я нашел этот вопрос по извлечению выдержек из статьи , но любые советы в правильном направлении были бы полезны.

Ответы [ 2 ]

1 голос
/ 30 ноября 2011

Я узнал, что Digg использует протокол Open Graph (http://ogp.me/) от Facebook.

В конечном итоге, это именно то, что я искал!

Ruby Gem OpenGraph: https://github.com/intridea/opengraph

Получив доступ к тегу метаданных "description", я получил описание, например,

article = OpenGraph.fetch('http://www.page.com/article/1124')
article.description# => 'This is a small description of the movie'

Некоторые страницы (но не большинство статей) не имеют описания.

0 голосов
/ 29 ноября 2011

Как извлечь основной контент статьи веб-страницы

Попробуйте извлечь текст с помощью DOM, вот пример страницы

<body>
    <div>
        <ul>
            <li><a href="/home">Home</a></li>
            <li><a href="/politics">Politics</a></li>
            <li><a href="/health">Health</a></li>
            <li><a href="/travel">Travel</a></li>
            <li><a href="/about">About</a></li>
        </ul>
    <div>
    <div>
        <div>
            <p><b>MIAMI, Florida (CNN) </b> -- Hurricane Ike weakened slightly...
            <p>Ike hit Turks and Caicos Islands Sunday morning, leaving a trail of...
            <p>"It pretty much looks like an episode of 'The Twilight Zone,' " said...
            <p>Aftwood estimates at least 90 percent of homes he saw on the island were...
            <p>The possibility of similar devastation prompted state and local officials...
            <p > "Let's hope it's all a false alarm," Louisiana Gov. Bobby Jindal said...
        </div>
        <div>
            <p>Some side-story that we don't really care about.</p>
            <p>Another paragraph for this story.</p>
        </div>
        <div>
            <p>Yet another semi-related side-story that we still don't care about.</p>
            <p>Another paragraph for this story.</p>
            <p>Another paragraph for this story.</p>
            <p>Yet another paragraph for this story.</p>
        </div>
    </div>
    <div>© 2008 Cable News Network.<div>
</body>

Очевидно, что мызаботиться о тексте навигационной ссылки или двух дополнительных материалах.Давайте разберем его в зависимости от местоположения DOM.У нас есть шесть

тегов в первом теге второго тега тела.Мы представим это местоположение в виде списка индексов, например (2,1, *).Если мы сгруппируем все текстовые узлы таким образом и проследим, сколько текста содержит каждая группа, мы получим таблицу типа:

location = characters
(1,1,1,1) = 4
(1,1,2,1) = 8
(1,1,3,1) = 6
(1,1,4,1) = 6
(1,1,5,1) = 5
(2,1,*) = 500
(2,2,*) = 100
(2,3,*) = 250
(3) = 26
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...