2016-05-05 47 views
0

別のWebサイトのページを監視するWebアプリケーションを開発する必要があります。 (つまりコンテンツがタイムリーに更新されているかどうかを確認する)。例えば、いくつかのコンテンツは5分ごとに更新する必要があり、あるものは1時間ごとに更新する必要があります。監視Webページの内容

私の現在のアイデアは、wgetを使って必要なページをダウンロードし、バックエンドに完全なjsonファイルを生成することです。それから、私のアプリケーションはajaxコール経由でjsonをダウンロードし、それに基づいて警告を出します。

私の質問は正しいですか?またはこれを達成するための他の優れたアプローチがすでに存在しています。

+0

既存の監視ツールを探しましたか? Googleアナリティクス、Azure Insightsなど –

+0

特定のコンテンツをチェックしたい例えば、あるdivの中で、私は内容を確認する必要があります。 – Rajesh

+0

チェックしたいコンテンツを検出した小さなJSスクリプトを追加して、自分の状態を自分のWebサービスに送信するとどうなりますか?この方法では、すべてのWebページをダウンロードする必要はなく、Webサービス内のデータのみを確認する必要があります。 –

答えて

0

ウェブスクレーパーをお試しください。

最初に:あなたが監視しているものがあなたの行動を考慮していない場合、法的問題を考慮に入れてください。

2番目:ウェブサイトが依存性の要求とcheerioを持つノードを使用しているプログラミング能力の低いプレーンなHTMLの場合は、そうすることができます。アプリやあなたがphantom.jsを見てみる必要があるかもしれませんAJAXを搭載した非同期コンテンツの多くがある場合

var request = require('request'); 
var cheerio = require('cheerio'); 

//proxy from http://proxylist.hidemyass.com/ 
var __proxyArray =["http://85.143.164.100:81", "http://111.13.143.141:8080", "http://176.9.60.39:3128" ]; 

var randomProxy = function(){ 
    var low = 0, high = __proxyArray.length; 
    var shuffled = Math.floor(Math.random() * (high - low) + low); 
    return __proxyArray[shuffled].uri ; 
}; 

var options = { 
    uri:"http://www.independent.co.uk/", 
    proxy: randomProxy(), 
    headers: { 
       'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36' 
      } 
    }; 
    console.log("start"); 
request(options, function(err, res, body){ 
    if(err || res.statusCode != 200) { 
    callback.call(null, new Error('Request failed')); 
    return; 
    } 
    //entire content 
    var xXx = JSON.stringify(body); 
    console.log(xXx); 

    //parsing with regex, you can use jquery in node as well 
    var rePattern = new RegExp(/(?=<a href="\/news)(?:\s*)(.*?)(?:\s*)(?=<\/a>)/g); 
    var newsMatches = body.match(rePattern); 


    for (var i=0; i<newsMatches.length; i++){ 
    //continue parsing url's pages 
    console.log(newsMatches[i]); 
    } 

}); 

: は、ここでは、独立したウェブサイト上のニュースのURLのを解析する方法の基本的な例です。どちらの場合でも、Webサイトをホストしているサーバーが受け入れたリクエストの数を処理する必要があります。あなたのIPが禁止されてしまうかもしれませんが、そこに多くのプロキシリストがあります。

これはあなたにとって役に立たないかもしれませんが、これはウェブサイト全体を動かす唯一の方法です(ユーザーのブラウザを使ってすべてのウェブサイトのページを解析してレコーダーに送り返すのは公正ではありません)。

乾杯。

+0

アプリケーションを展開する最終的なサーバーはインターネットに接続できません。内部サーバーです。だから、バックエンドのbashスクリプトをインターネットに接続してjsonファイルを生成するサーバに書きます。次に、そのファイルをアプリケーションから使用される内部サーバーからsftp経由でダウンロードします。これでいい? – Rajesh

関連する問題