使用Python检索类似Facebook的链接摘要(标题,摘要,相关图像)

Ram*_*hum 7 python facebook screen-scraping summary semantics

我想复制Facebook用来解析链接的功能.当您向Facebook状态提交链接时,他们的系统会退出并检索建议的内容title,summary并且通常会image从该页面中检索一个或多个相关内容,您可以从中选择缩略图.

我的应用程序需要使用Python来实现这一点,但我对任何类型的指南,博客文章或与此相关的其他开发人员的经验持开放态度,并可能帮助我弄清楚如何实现它.

我真的想在跳入之前先学习别人的经验.

要明确的是,当给出网页的URL时,我希望能够检索:

  1. 标题:可能只是<title>标签,但可能是<h1>,不确定.
  2. 页面的一段摘要.
  3. 一堆可以用作缩略图的相关图像.(棘手的部分是过滤掉不相关的图像,如横幅或圆角)

我可能必须自己实现它,但我至少想知道其他人是如何做这些任务的.

Don*_*ner 3

BeautifulSoup非常适合完成大部分工作。

基本上,您只需初始化soup对象,然后执行类似以下操作来提取您感兴趣的内容:

title = soup.findAll('title')
images = soup.findAll('img')
Run Code Online (Sandbox Code Playgroud)

然后,您可以根据每个图像的url使用情况下载它们urllib2

标题相当简单,但图像可能有点困难,因为您必须下载每张图像才能获取它们的相关统计数据。也许您可以根据尺寸和颜色数量过滤掉大部分图像?例如,圆角会很小,并且通常只有 1-2 种颜色。

至于页面摘要,这可能有点困难,但我一直在做这样的事情:

  1. 我使用BeautifulSoup删除所有样式、脚本、表单和头块,方法是html使用:.findAll,然后.extract
  2. 我使用以下方法获取剩余的文本:.join(soup.findAll(text = True))

在您的应用程序中,也许您可​​以使用此"text"内容作为页面摘要?

我希望这有帮助。

  • BeautifulSoup 在 Python 3.1 上并没有得到很好的支持,而且它的原作者也不再做太多的开发。您可能最好使用 lxml.html 和/或 html5lib (后者是 BeautifulSoup 作者推荐的)。 (3认同)