【发布时间】:2009-08-15 03:34:05
【问题描述】:
我正在尝试使用 python 在 youtube 中废弃一个页面,其中包含很多 ajax
我每次都要调用 java 脚本来获取信息。但我真的不知道该怎么做。我正在使用 urllib2 模块打开 URL。任何帮助将不胜感激。
【问题讨论】:
标签: python ajax screen-scraping
我正在尝试使用 python 在 youtube 中废弃一个页面,其中包含很多 ajax
我每次都要调用 java 脚本来获取信息。但我真的不知道该怎么做。我正在使用 urllib2 模块打开 URL。任何帮助将不胜感激。
【问题讨论】:
标签: python ajax screen-scraping
Youtube(以及 Google 制作的所有其他产品)已经具备广泛的 API,可让您访问几乎所有您可能想要的数据。
查看The Youtube Data API 了解更多信息。
我使用 urllib 发出 API 请求,使用 ElementTree 解析返回的 XML。
【讨论】:
主要问题是,您违反了 youtube 网站的 TOS(服务条款)。 Youtube 的工程师和律师会尽他们的专业来追踪你,如果你坚持的话,会为你树立榜样。如果你对这个前景感到满意,那么,就这样吧——从技术上讲,你最好的选择是python-spidermonkey 和selenium。我想将技术提示记录在案,以防将来有人需要像您的问题标题所表明的那样,没有如果您继续这一特定努力,您显然会遇到法律问题。
【讨论】:
我会这样做:在 Firefox 上安装 Firebug,然后在 firebug 中打开 NET,然后在 YouTube 上单击所需的链接。现在看看会发生什么以及请求了哪些页面。找到负责页面 AJAX 部分的那个。现在您可以使用 urllib 或 Mechanize 来获取链接。如果您可以通过这种方式提取相同的内容,那么您就拥有了您要查找的内容,然后只需解析内容即可。如果您不能以这种方式提取内容,则表明所请求的页面可能正在查看用户登录凭据、会话信息或其他标头字段,例如 HTTP_REFERER ...等。然后您可能想查看更多内容像scrapy ...等广泛。我建议您始终首先遵循简单的路径。祝你好运和快乐“负责任地”刮! :)
【讨论】:
按照建议,您应该使用 YouTube API 访问合法提供的数据。
关于抓取 AJAX 的一般问题,您可能需要考虑scrapy framework。它为抓取和抓取网站提供广泛的支持,并在后台使用 python-spidermonkey 访问 javascript 链接。
【讨论】: