我试图用Nokogiri来解析这个ASCAP网站来检索一些歌曲/艺术家信息。下面是什么我想查询使用Nokogiri解析JavaScript隐藏的HTML
https://mobile.ascap.com/aceclient/AceClient/#ace/writer/1628840/JAY%20Z
我似乎无法正常访问DOM因为源似乎背后某种JavaScript来隐藏一个例子。我对网络抓取很陌生,所以想要找到一种方法来解决这个问题一直很困难。我尝试使用Charles来查看是否从另一个站点获取数据,并使用XHelper生成准确的XPath查询。
这将返回零,它应该返回“1,2你们大家”
page = Nokogiri::HTML(open('https://mobile.ascap.com/aceclient/AceClient/#ace/writer/1628840/JAY%20Z'))
puts page.xpath('/html/body/div[@id="desktopSearch"]/div[@id='ace']/div[@id="aceMain"]/div[@id="aceResults"]/ul[@id="ace_list"]/li[@class="nav"][1]/div[@class="workTitle"]').text
该网站看起来像Javascript饲料。您需要使用可以使用JS处理页面的东西,然后读取生成的DOM。 [本教程关于Capybara + PhantomJS](http://www.chrisle.me/2012/12/scraping-html5-sites-using-capybara-phantomjs/)可能对您有用。 – 2014-12-04 02:23:27
不要将我们指向一个链接作为数据的一个例子。链接腐烂和中断。相反,请在问题中提供一个最简单的HTML示例。还有什么可以阻止答案。 – 2014-12-04 03:16:17
对不起@thetinman,我无法展示一个例子,像我描述的描述那样的b/c,当您查看源代码时,HTML实际上并没有显示出来。 – 2014-12-12 19:28:47