0

我正在建立一个用户发布内容和 URL 的网站,非常类似于 facebook 墙/新闻提要。

我在想我可以从用户那里获取 URL,然后从 django 后端的服务器打开它并检查内容(就像 facebook 一样)。

我认为应该有一个 django-opengraph 应用程序可以帮助我打开 URL 并检查元标记以确定什么样的内容等。但似乎 Open Graph 是 Facebook 的发明?

我的问题是如何使用 django 打开 URL 并获取内容(视频、音频、图像、文本)并确定可以将哪些内容正确嵌入到我的网站中?任何应用程序?

而且,我对来自用户发送的服务器的开放 URL 的安全方面感兴趣。

谢谢!

4

5 回答 5

4

djangoembed不再维护。但是您可能想看看micawber。它似乎很适合您的要求。

于 2012-11-20T17:14:14.357 回答
2

Open Graph Protocol确实是由 Facebook 发明的,它基本上是一组元数据,您可以添加这些元数据来详细描述页面的内容:9GAG 将描述正在显示的图像;YouTube 会描述视频等。大多数能够在 Facebook 上共享内容的页面都是 OGP 友好的,但这仍然不能涵盖网络上可用的全部内容。

在任何一种情况下,如果您按照其他人的建议让应用程序本身从 URL 检索和解析内容,请务必小心。我更愿意开发一个 JavaScript 应用程序,该应用程序将利用客户端的资源来解析内容本身,因为有人可以通过多种方式向您提供恶意 URL,如果您不小心,它们会故意耗尽您的应用程序的可用资源,更不用说该过程本身一开始就非常昂贵。

于 2012-09-30T16:51:26.497 回答
1

您可以使用 urllib2 模块请求 url。但我建议使用 BeutifulSoup 来检查 urls 内容。http://pypi.python.org/pypi/BeautifulSoup

于 2012-09-30T10:47:26.647 回答
1

扩展现有响应:使用requests下载页面,然后使用beautifulsoup4处理它。

例子

import requests
from bs4 import BeautifulSoup

r = requests.get('http://www.facebook.com')
soup = BeautifulSoup(r.text)
print soup.title.string

哪个会返回

Welcome to Facebook - Log In, Sign Up or Learn More

请参阅 beautifulsoup 文档,了解如何从 html 中提取其他元素。

于 2012-09-30T14:26:31.983 回答
0

对此没有简单的答案。仅使用 requests 或 urllib2,您可以对结构进行一些猜测并获取标题或猜测新闻文章/视频的内容可能是什么。我知道有两种解决方案可以让您起步,而不是重新发明轮子。

  1. Embed.ly,这是一项付费服务​​,并且有一个非常好的 API。
  2. djangoembed . 使用 oEmbed 协议的免费解决方案。虽然我没有使用过它,但它似乎正是您所需要的。
于 2012-10-01T05:40:45.690 回答