Получая подобные Facebook сводки ссылки (заголовок, сводные, соответствующие изображения) использование Python

Я хотел бы копировать функциональность что использование Facebook для парсинга ссылки. При представлении ссылки в состояние Facebook их система выходит и получает предложенный title, summary и часто один или несколько релевантный images от той страницы, из которой можно выбрать миниатюру.

Мое приложение должно выполнить это использование Python, но я открыт для любого, своего рода ведут, сообщение в блоге или опыт других разработчиков, который касается этого и мог бы помочь мне выяснить, как выполнить его.

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

Чтобы быть ясным при предоставлении URL веб-страницы я хочу смочь получить:

  1. Заголовок: Вероятно, просто <title> тег, но возможно <h1>, не уверенный.
  2. Сводка с одним абзацем страницы.
  3. Набор соответствующих изображений, которые могли использоваться в качестве миниатюры. (Хитрая часть должна отфильтровать несоответствующие изображения как баннеры или скругленные углы),

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

7
задан Troy Alford 22 April 2013 в 21:30
поделиться

1 ответ

BeautifulSoup хорошо подходит для выполнения большинства этих задач.

По сути, вы просто инициализируете объект soup, затем делаете что-то вроде следующего, чтобы извлечь то, что вас интересует:

title = soup.findAll('title')
images = soup.findAll('img')

Затем вы можете загрузить каждое из изображений на основе их url, используя urllib2.

Заголовок довольно прост, но изображения могут быть немного сложнее, поскольку нужно загрузить каждое из них, чтобы получить соответствующую статистику по ним. Возможно, вы могли бы отфильтровать большинство изображений по размеру и количеству цветов? Скругленные углы, как пример, будут маленькими и иметь только 1-2 цвета, как правило.

Что касается резюме страницы, это может быть немного сложнее, но я делаю примерно следующее:

  1. Я использую BeautifulSoup, чтобы удалить все блоки стилей, сценариев, форм и заголовков из html, используя: .findAll, затем .extract.
  2. Я захватываю оставшийся текст, используя: .join(soup.findAll(text = True))

В вашем приложении, возможно, вы могли бы использовать это "text" содержимое в качестве резюме страницы?

Надеюсь, это поможет.

2
ответ дан 7 December 2019 в 16:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: