2016-10-25 9 views
-1

私は、このウェブページから「lead」タグのすべての文章を取得する方法を探しています:http://taz.de/!p4633/c.xml そしてそれらを配列に入れてください。 javascriptプログラムは、そのようなWebから情報を得ることができますか?Javascriptでウェブページをスクラップしますか?

var sentences = ["Sentence1 blablabla.", "sentence2 bla bla bla.", "sentence3 blablabla.", "sentence4 bla bla."]; 

理由は、私はランダムな文章で答えるのtwitterBOTを作りたいということです。それは

<lead>Sentence1 blablabla. sentence2 bla bla bla.</lead> 
<headline>something else</headline> 
<lead>sentence3 blablabla. sentence4 bla bla.</lead> 

が、私はそうのような文字列を取得したいのですが言う例えば

、この新聞のウェブサイトから。私はWebスクラップ用のチュートリアルを検索しましたが、node.jsに慣れていないので、他のツールを使用することもできませんでした。

+0

あなたができることを確認たとえそうであっても、前記抽出の方法および到達範囲は、JSコードが実行されるプラットフォームに依存する。ブラウザ(クライアント)側ですか?サーバー側(おそらくNodeJS)では? – argon

+0

このサイトはあなたのために無料でコードを書く人のためのものではありません。ほとんど/ほぼ動作するコードを表示して、人々が手助けします。コードを表示しないと、人々は沈黙を守り、投票したり、時には質問を閉じることもあります。 –

答えて

0

JavaScriptプログラムは、そのようなWebから情報を取得できますか?

はい。

ノードのHTTP module、特にhttp.getについて知っておく必要があります。次に、XMLパーサーが必要になります。 npmで一団が浮かび、いずれかを選ぶべきです。 XMLを取得し、XMLを解析し、必要なデータを選択して配列に格納します。

0

これはあなたのために働くだろう、私はファイアウォールのウェブページの原因から、実際の応答を得るが、この例のコードを試してみてください、と教えてcouln't:

var fakeResponse = "<xml><lead>Sentence1 blablabla. sentence2 bla bla bla.</lead></xml>"; 
 

 

 
function processResponse(response) { 
 
    
 
var parser = new DOMParser(); 
 
var xmlDoc = parser.parseFromString(response, "text/xml"); //important to use "text/xml" 
 
    for (var i=0; i < xmlDoc.getElementsByTagName("lead").length; i++) { 
 
    var html = xmlDoc.getElementsByTagName("lead")[i].innerHTML; 
 
    
 
    console.log("item " + i + "=>" + html); 
 
    } 
 
    
 
    
 
} 
 

 
var xhttp = new XMLHttpRequest(); 
 
xhttp.onreadystatechange = function() { 
 
    if (this.readyState == 4 && this.status == 200) 
 
    { 
 
     var responseData = this.responseText; 
 
     
 
     responseData = fakeResponse; //delete This line, just for testing 
 
     
 
     processResponse(responseData) 
 
     
 
    } 
 
    
 
}; 
 
var your_url = "https://jsonplaceholder.typicode.com/posts/1"; //update with the url of your webservice  
 
xhttp.open("GET", your_url, true); 
 
xhttp.send();

関連する問題