我試圖用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