如何爬取AJAX网站?

3
过去,我使用urllib2库从网站获取源代码。然而,我注意到对于最近我一直在尝试的一个网站,我无法在源代码中找到所需的信息。 http://www.wgci.com/playlist是我正在查看的网站,我想要获取最近播放的歌曲和最近歌曲的播放列表。我基本上想要复制并粘贴网站上可见的文本,并将其放入字符串中。或者,能够访问包含这些值的明文元素并正常使用urllib2获取它们也不错。是否有任何方法可以完成这两件事?
谢谢。
1个回答

3
你想要爬取的网站是通过ajax调用来填充页面数据的。有两种方法可以从中提取数据:
  • 使用支持JavaScript的无头浏览器(例如ZombieJS),并爬取生成的输出内容。但这很复杂,需要大量资源。
  • 了解他们的API是如何工作的,并直接调用API,这样会更简单。
请使用Chrome开发者工具(网络选项卡)在浏览网站时查看调用情况。
例如,某个流的最后播放歌曲列表可以在以下JSON中获得: http://www.wgci.com/services/now_playing.html?streamId=841&limit=12

这正是我所需要的!考虑到Clear Channel对美国广播市场的控制,我可以将其扩展到其他电台。非常感谢。 - user3835980

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接