在Python/R中的网页抓取javascript

问题描述:

我正在做一些个人数据科学项目,其中一个是看某些歌曲在收音机上播放的频率。在Python/R中的网页抓取javascript

http://www.iheart.com/live/radio-1045-3401/

看着上面的网址,当我看着页面的源代码,没有兴趣填入值。不知道为什么,但是当我将鼠标悬停在“正在播放”标题上时,在Chrome中使用检查元素时,可以看到正在播放的歌曲和艺术家的值。

例子:

a class="player-song" href="/artist/rem-3610/songs/-2450662/" title="Losing My Religion" data-reactid=".1hpdfx1l4ow.a.1.0.1.1">Losing My Religion</a 

我的两个问题是:

  1. 为什么没有这个显示页面的源代码,但我可以看到它在检查元素?
  2. 我怎么会网页刮这个信息,因为它没有出现在页面源?
+0

没有检查过,但它可能是由javascript生成的内容,在这种情况下,您可以在python – juvian

+1

中使用硒,您可能也可以使用它们的API获取数据.. http://developer.iheart.com/Api/login –

  1. 大部分网页涉及动态元素已经产生,并通过插入的JavaScript的浏览器解析并执行你的页面元素。根据问题标题,您已经猜到了这一点,我怀疑。

    您在页面源代码中看到的是原始HTML 之前 Javascript启动并更新它。

  2. 你想要一个headless browser:一个没有图形用户界面的浏览器。这将为您解析和执行Javascript,并相应地更新页面HTML。


这里是一个full list of headless browsers。请注意,您可以使用任何语言来完成此任务。

+0

MechanicalSoup在自述中声明它不会执行JavaScript,而RoboBrowser是请求和beautifulSoup的混合,所以我认为不是。不太确定机械化。虽然很好的答案。 – Ehvince