Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python检索类似Facebook的链接摘要(标题、摘要、相关图像)_Python_Facebook_Semantics_Screen Scraping_Summary - Fatal编程技术网

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

使用Python检索类似Facebook的链接摘要(标题、摘要、相关图像),python,facebook,semantics,screen-scraping,summary,Python,Facebook,Semantics,Screen Scraping,Summary,我想复制Facebook用来解析链接的功能。当您将链接提交到Facebook状态时,他们的系统会弹出并检索建议的标题,摘要,通常还会从该页面中检索一个或多个相关的图像,您可以从中选择缩略图 我的应用程序需要使用Python来实现这一点,但我愿意接受与此相关的任何类型的指南、博客文章或其他开发人员的经验,这些可能会帮助我了解如何实现它 我真的很想在插手之前学习别人的经验 明确地说,当给定网页的URL时,我希望能够检索: 标题:可能只是标签,但可能是,不确定 该页的一段摘要 可以用作缩略图的一组相关

我想复制Facebook用来解析链接的功能。当您将链接提交到Facebook状态时,他们的系统会弹出并检索建议的
标题
摘要
,通常还会从该页面中检索一个或多个相关的
图像
,您可以从中选择缩略图

我的应用程序需要使用Python来实现这一点,但我愿意接受与此相关的任何类型的指南、博客文章或其他开发人员的经验,这些可能会帮助我了解如何实现它

我真的很想在插手之前学习别人的经验

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

  • 标题:可能只是
    标签,但可能是
    ,不确定
  • 该页的一段摘要
  • 可以用作缩略图的一组相关图像。(棘手的部分是过滤掉不相关的图像,如横幅或圆角)
  • 我可能必须自己实现它,但我至少想知道其他人是如何完成这类任务的。

    非常适合完成大部分任务

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

    title = soup.findAll('title')
    images = soup.findAll('img')
    
    然后,您可以使用
    urllib2
    根据它们的
    url
    下载每个图像

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

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

  • 我使用:
    .findAll
    ,然后使用
    .extract
    html
    中删除所有样式、脚本、表单和头块
  • 我使用:
    .join(soup.findAll(text=True))
  • 在您的应用程序中,您是否可以使用此
    “文本”
    内容作为页面摘要


    我希望这能有所帮助。

    这里有一个完整的解决方案:


    Python3.1不支持BeautifulSoup,它的原始作者也不再做太多的开发工作。您可能最好使用lxml.html和/或html5lib(后者由BeautifulSoup作者推荐)。很高兴知道,以供将来参考。谢谢不幸的是,这个项目不支持Python3。
    >>> 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
    >>>