2016-12-14 2 views
0

Node.jsを使用して、ダウンロードされたHTMLを循環していくつかの要素を見つけ出し、それらをコマンドに追加してマクロを構築するスクリプトを記述しています。私はそのスクリプトを別のマクロからブラウザから呼び出します(呼び出し元のマクロはHTMLをダウンロードしてファイルに格納します)、私はそのマクロをループに入れます。問題は、スクリプトを実行することができないということです。私はbrowserifyを使ってみましたが、それはトリックでしたが、fs.readFileSync()は関数ではありません。私はbrfsの知っているが、コードに静的なエントリを作成し、Source.htmファイルは動的であり、その中に別の情報でリロードされます。だから私はここの溝にいる。私はbrowserify-fsについても読んでいますが、何もしません。次のコードは、基本的に私が書いた小さなスクリプトです。私はbrowserifyが生成する部分は含めませんでした。それは無関係なので、私はまた、マクロ作成でその部分をスキップしました。私はノブだと言わなければならず、私はこれまでにも多くの読書をしましたが、現在どのように進めるべきか分かりません。どんな助けも大歓迎です!ブラウザでfsを使ってページのhtmlをダウンロードし、その要素をスクリプトで使用するにはどうすればいいですか?

var fs = require('fs'); 
    var pageSource = fs.readFileSync('Source.htm', 'utf8').toString().split("\n"); 
    var idStrings = []; 
    var userIDs = []; 

    //getting string lines from page source array containing ids 
    for(i in pageSource){ 
     if(pageSource[i].includes("id=\\")){ 
      idStrings[i] = pageSource[i]; 
      } 
    } 

    //getting numbers from string lines using regex 
    for(i in tradeStrings){ 
     userIDs[i] = idStrings[i].replace(/^\D+|\D+$/g, ""); 
    } 

    //sorting just in case 
    userIDs.sort(function(a,b){return a - b}); 

    //building macro and executing it... 
+0

いいえいいえあなたはbrowserifyを通して 'fs'を使うことはできません。 'fs'はサーバー側Node.JSのみのモジュールです。 – arufian

答えて

0

基本的に、ウェブブラウザは、スクリプトがハードドライブ上の任意のファイルを開くことを許可しません。これはユーザーのセキュリティのためです - 悪意のあるWebサイトが完全なファイルシステムアクセスで何をすることができるか想像してください!

ファイルに保存するのではなく、最初のスクリプトでリソースをjavascript変数にダウンロードし、そこから解析するようにしてください。

+0

最初のマクロはダウンロードするものです。終了後、私はいくつかの部分を抽出し、これらの部分で別のマクロを構築して実行するスクリプトを呼び出します。たぶん別のスクリプトでページを擦って、これをこのページに渡すことがありますか?私はこれがうまくいくとは思わない。 –

+0

マクロとは、Webブラウザで実行されているjsスクリプトを意味しますか?スクリプト内のURLからリソースを読み込む代わりに、別のスクリプトがダウンロードを渡す理由は何ですか? – PMV

+0

マクロでは、ブラウザの自動化を可能にする拡張機能であるIMacrosを意味します。 –

関連する問題