2017-03-04 97 views
0
function getHTMLSource(url) { 
     return $http.get(url).then(function(response) { 
     var html = response.data; 
     url = getDetailPage(html) 
     return url ; 
    } 
)}; 

getHTMLSource('http://www.footpatrol.co.uk/s:282524/search=282524/') 

每當我嘗試上面的代碼,我在我的控制檯GET http://localhost:9000/templates/footpatrol.co.uk/_assets/images/content/footpatrol_logo.png 404 (Not Found)中收到以下錯誤信息。http.get嘗試檢索圖像時,解析時,我不需要它

該圖像似乎存在於http://www.footpatrol.co.uk/templates/footpatrol.co.uk/_assets/images/content/footpatrol_logo.png,但由於我使用Chrome的Allow-Control-Allow-Origin插件在本地主機上運行scipt,因此它看起來不能很好地播放。我不想獲得我只想要源代碼的圖像,反正有這個嗎?

更新:我想可能是我的解析器造成問題,因爲錯誤信息在這裏拋出

function getDetailPage(html) { 
    var temp = document.createElement('div'); 
    temp.innerHTML = html; 
    var a = temp.querySelector('a[class*=\'fp-product-thumb-link\']'); 
    var partOfUrl = a.href; 
    var splitUrl = partOfUrl.split('/'); 
    var url = 'http://www.footpatrol.co.uk/' + splitUrl[3] + '/' + splitUrl[4]; 
    var url = 'http://www.footpatrol.co.uk/' + splitUrl[3] + '/' + splitUrl[4]; 
    $log.debug('Detail page url found: ' + url); 
    return url; 
} 
+0

我不明白爲什麼這段代碼會導致這個錯誤。你在做什麼,你得到的HTML。你想達到什麼目的? –

+0

我只是解析它的信息。以下是日誌:http://imgur.com/a/Qxc5P – methuselah

+0

我已更新了有關錯誤首次拋出的更多詳細信息的問題。這可能歸結於我的解析方法嗎? – methuselah

回答

1

而不是創建元素,使用DOMParser API:

function getDetailPage(html) { 
     //var temp = document.createElement('div'); 
     //temp.innerHTML = html; 
     var parser = new DOMParser(); 
     var temp = parser.parseFromString(html, "text/html"); 
     var a = temp.querySelector('a[class*=\'fp-product-thumb-link\']'); 
     //var partOfUrl = a.href; 
     //console.log(partOfUrl); 
     //var splitUrl = partOfUrl.split('/'); 
     //var url = 'http://www.footpatrol.co.uk/' + splitUrl[3] + '/' + splitUrl[4]; 
     var elem = angular.element(a); 
     var url = 'http://www.footpatrol.co.uk/' + elem.attr('href'); 
     console.debug('Detail page url found: ' + url); 
     return url; 
} 

找到詳細頁面網址:http://www.footpatrol.co.uk//footwear/282524-air-retro-15-obsidian.html

相關問題