2011-10-25 9 views
0

こんにちは私は新しいファンページのHTMLニュースを解析しようとしています。 会社はRSSフィードを提供していません。 JavascriptのHTMLパーサー

は、私は私がHTMLにソースコードは、それが動作するファイルPASE場合はそれと新しいJSファイルが最後に
function getNews() { 
     y = 0; 
     news = new Array(7); 
     news_content = new Array(5); 
     for (var i = 0; i < news.length; i++) 
     { 
      var table = document.getElementById('news').contentWindow.getElementsByTagName('table')[y]; 
      news_content[0] = table.rows[0].cells[0].getElementsByTagName('img')[0].src; 
      news_content[1] = table.rows[0].cells[1].getElementsByTagName('span')[0].innerHTML; 
      news_content[2] = table.rows[0].cells[2].getElementsByTagName('span')[0].innerHTML; 
      news_content[3] = table.rows[1].cells[0].getElementsByTagName('p')[0].innerHTML; 
      news_content[4] = table.rows[0].cells[0].getElementsByTagName('a')[0].href; 
      //alert(news[0] + "\n" + news[1] + "\n" + news[2] + "\n" + news[3] + "\n" + news[4]); 
      news[i] = news_content[0] + "\n" + news_content[1] + "\n" + news_content[2] + "\n" + news_content[3] + "\n" + news_content[4] + "\n"; 
      y = y + 2; 
     } 
     alert (news[0] + "\n" + news[1] + "\n" + news[2] + "\n" + news[3] + "\n" + news[4]) 
} 

とそのHTML

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Unbenanntes Dokument</title> 
<script src="test.js"></script> 
</head> 

<body> 
<a href="page.html" onclick="getNews()">Hier klicken</a> 
<iframe id="news" src="http://www.aerosoft-shop.com/list_news.php?cat=fs&lang=de"> 
</body> 
</html> 

が含まれて得たが、そこにはに方法はありません外部ページから解析しますか?

答えて

1

あなたはFirebugのようなツールを使用してコードをデバッグする場合は、にErrorMessageは次のように返されます: Permission denied to access property 'getElementsByTagName'

それは別のドメインを指すのIFrameにアクセスするには、JavaScriptで実際に可能ではないですが、 ていなくても、サブドメインあなたのドメインの (この回答のコメントによると可能です)。 ここでの質問は、サイト所有者が自分のサイトをクロールしたり、他のソース(トラフィックや著作権の問題など)からクロールすることを一般に歓迎していないため、少なくともあなたにそれを与えてもらいたい場合です。

+1

実際に 'document.domain =" yourdomain.com ";' * in * both *ドキュメントを追加すると、別のサブドメイン(しかし同じドメイン)からコンテンツにアクセスすることは可能です。 – RoToRa

+0

わかりやすくありがとう、私は私の答えを編集し、あなたのコメントを指摘した。 – Neq

関連する問題