Как мне разрешить содержимое веб-страницы?

StackOverflow https://stackoverflow.com/questions/1233366

  •  22-07-2019
  •  | 
  •  

Вопрос

Я пишу специальное приложение, похожее на поисковик, которому необходимо извлекать основное содержимое различных страниц.Просто чтобы прояснить :Мне нужно настоящее "мясо" страницы (при условии, что оно есть, естественно).

Я пробовал различные подходы:

  1. На многих страницах есть rss-каналы, так что я могу прочитать ленту и получить конкретное содержимое этой страницы.
  2. Многие страницы используют мета-теги "контент"
  3. Во многих случаях объект , представленный в середине экрана , является основным "содержимым" страницы

Однако эти методы не всегда работают , и я заметил, что Facebook отлично справляется именно с этим (когда вы хотите прикрепить ссылку , они показывают вам контент, который они нашли на странице ссылки) .

Итак, есть ли у вас какой-нибудь совет для меня по подходу, который я пересмотрел?

Спасибо!

Это было полезно?

Решение

На самом деле не существует стандартного способа для веб-страниц пометить "это мясо".Большинству страниц это даже не нужно, потому что это облегчает кражу их основного бизнеса.Таким образом, вам действительно нужно написать фреймворк, который может использовать постраничные правила для поиска нужного вам контента.

Другие советы

Ну, ваш вопрос все еще немного расплывчат.В большинстве случаев "поисковик" собирается просто найти данные в Интернете в текстовом формате и обработать их для хранения, синтаксического анализа и т.д."Скриншот Facebook" - это совершенно другой зверь.

Если вы просто ищете веб-сканер, есть несколько библиотек, которые можно использовать для очень легкого обхода DOM веб-страницы и получения нужного вам контента.

Если вы используете Python, попробуйте Прекрасный Суп Если вы используете Ruby, попробуйте хприкот

Если вы хотите получить все содержимое веб-страницы для последующей обработки, просто получите и сохраните все под тегом "html".

Вот прекрасный пример того, как удалить все ссылки со страницы:

require 'hpricot'
require 'open-uri'
doc = Hpricot(open("http://www.stackoverflow.com"))
(doc/"a").each do |link|
  puts link.attributes['href']
end

Редактировать:Если вы собираетесь в первую очередь получать контент с одних и тех же сайтов (напримерраздел комментариев Reddit, вопросы из StackOverflow, ссылки Digg и т.д.) Вы можете жестко запрограммировать их формат, чтобы ваш поисковик мог сказать: "Хорошо, я на Reddit, получите все с классом 'thing'.Вы также можете предоставить ему список объектов для поиска по умолчанию, таких как divs с классом / идентификатором "main", "content", "center" и т.д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top