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

时间:2010-07-21 11:44:45

标签: python facebook semantics screen-scraping summary

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

我的应用程序需要使用Python来完成此任务,但我愿意接受任何类型的指南,博客文章或与此相关的其他开发人员的经验,并可能帮助我弄清楚如何实现它。

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

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

  1. 标题:可能只是<title>标签,但可能是<h1>,不确定。
  2. 页面的一段摘要。
  3. 一组可用作缩略图的相关图像。 (棘手的部分是过滤掉不相关的图像,如横幅或圆角)
  4. 我可能必须自己实施,但我至少想知道其他人是如何做这些任务的。

2 个答案:

答案 0 :(得分:2)

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))
  3. 抓取剩余的文字

    在您的应用中,您可以使用此"text"内容作为页面摘要吗?

    我希望这会有所帮助。

答案 1 :(得分:1)

以下是完整的解决方案:https://github.com/svven/summary

>>> import summary
>>> s = summary.Summary('http://stackoverflow.com/users/76701/ram-rachum')
>>> s.extract()
>>> s.title
u'User Ram Rachum - Stack Overflow'
>>> s.description
u'Israeli Python hacker.'
>>> s.image
https://www.gravatar.com/avatar/d24c45635a5171615a7cdb936f36daad?s=128&d=identic
on&r=PG
>>>