【问题标题】:Scraping Ajax - Using python抓取 Ajax - 使用 python
【发布时间】:2009-08-15 03:34:05
【问题描述】:

我正在尝试使用 python 在 youtube 中废弃一个页面,其中包含很多 ajax

我每次都要调用 java 脚本来获取信息。但我真的不知道该怎么做。我正在使用 urllib2 模块打开 URL。任何帮助将不胜感激。

【问题讨论】:

    标签: python ajax screen-scraping


    【解决方案1】:

    Youtube(以及 Google 制作的所有其他产品)已经具备广泛的 API,可让您访问几乎所有您可能想要的数据。

    查看The Youtube Data API 了解更多信息。

    我使用 urllib 发出 API 请求,使用 ElementTree 解析返回的 XML。

    【讨论】:

      【解决方案2】:

      主要问题是,您违反了 youtube 网站的 TOS(服务条款)。 Youtube 的工程师和律师会尽他们的专业来追踪你,如果你坚持的话,会为你树立榜样。如果你对这个前景感到满意,那么,就这样吧——从技术上讲,你最好的选择是python-spidermonkeyselenium。我想将技术提示记录在案,以防将来有人需要像您的问题标题所表明的那样,没有如果您继续这一特定努力,您显然会遇到法律问题。

      【讨论】:

      • 我建议这里的人们尝试成为程序员而不是律师。肯定有其他的律师页面/网站。我知道你们中的一些人可能在 G 先生或其他大哥的工资单上。因此,如果有人提出技术问题,请先提供技术答案,然后如果确实需要,请提供简短的法律建议。 让我们将此网站保持为相关网站。只是给大家一个友好的提示,不要偏离手头的问题。
      • 因为我们玩的是互联网律师,我不知道违反 ToS 是非法的(不管 Facebook 怎么说)。所以他们可以对你做的最坏的事情是禁止他们的网站违反他们的服务条款,是吗?
      【解决方案3】:

      我会这样做:在 Firefox 上安装 Firebug,然后在 firebug 中打开 NET,然后在 YouTube 上单击所需的链接。现在看看会发生什么以及请求了哪些页面。找到负责页面 AJAX 部分的那个。现在您可以使用 urllib 或 Mechanize 来获取链接。如果您可以通过这种方式提取相同的内容,那么您就拥有了您要查找的内容,然后只需解析内容即可。如果您不能以这种方式提取内容,则表明所请求的页面可能正在查看用户登录凭据、会话信息或其他标头字段,例如 HTTP_REFERER ...等。然后您可能想查看更多内容像scrapy ...等广泛。我建议您始终首先遵循简单的路径。祝你好运和快乐“负责任地”刮! :)

      【讨论】:

        【解决方案4】:

        按照建议,您应该使用 YouTube API 访问合法提供的数据。

        关于抓取 AJAX 的一般问题,您可能需要考虑scrapy framework。它为抓取和抓取网站提供广泛的支持,并在后台使用 python-spidermonkey 访问 javascript 链接。

        【讨论】:

          【解决方案5】:

          您可以使用 Wireshark 之类的东西来嗅探网络流量,然后通过足够强大以处理 AJAX 的抓取框架(例如 scraPY)重放 HTTP 调用。

          【讨论】:

            猜你喜欢
            • 2012-05-13
            • 1970-01-01
            • 2013-04-29
            • 1970-01-01
            • 2022-11-12
            • 1970-01-01
            相关资源
            最近更新 更多