質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • JavaScript

    16498questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • HTML

    9011questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • Firefox

    210questions

    Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

  • iMacros

    19questions

    iMacrosは、internet explorer、Firefox、Google Chromeのブラウザ上で起動させて使うアドオン。パソコンの記録と再生を容易に行うことが可能です。ブラウザ上の作業を自動化することで、作業効率を上げることができます。

どっちですか?2択です

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 370

pp0

score 3

任意の連番urlサイトにアクセスし、そのページの文字数を調べ、任意の文字数以外だったら再読み込み。
任意の文字数になるまで再読み込みと文字数計測を繰り返す。

文字数計測はhtml読み込み直後に行う。(画像などの表示を待たずに)

任意の文字数だったら、そのページを名前をつけて保存する。

保存したらurlの連番に任意の数字を足していき同様に処理。

以上を、firefoxで実現する。
imacrosを使っても良い。

…という依頼を別のところで行い、作ってもらったコードが以下です。
http://fast-uploader.com/file/7071669600389/

しかし、これをtorプロキシでアクセスする,onionサイトで使ってもうまく動作しません。
コード製作者によると.onionサイトでは「文字数計測はhtml読み込み直後に行う」ことはできないとのことでした。

しかしそれがコード製作者の力不足が原因なのか、それとも,onionサイトでは
「文字数計測はhtml読み込み直後に行う」ことがしくみ的に不可能なのかわかりません。
どちらなのかご存知の方は教えてください。
どうぞよろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2018/01/17 09:27

    複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

  • tsukka

    2018/01/17 15:01 編集

    これの動かし方聞いた?聞いたなら追記してください。あと理論的にはtorはsocks5に見えるのでtorとonionの技術的には可能なはず。ただそこにxpcomとか言う謎の物体が入っててよくわからないことになってる。追記:多分imacrosですよね?

    キャンセル

  • pp0

    2018/01/17 21:57

    はい、おっしゃるとおりimacrosです。説明不足ですみませんでした。

    キャンセル

  • tsukka

    2018/01/18 13:38

    なんか無関係なとこでエラー出るんですけど…torbrowser7.0.11(based on mozilla firefox 52.5.2)(32bit)imacros 9.0.3ちなみに8.9.7は入りませんでした

    キャンセル

回答 2

checkベストアンサー

+1

firefox37.0.2 imacros 8.9.7において

function doMain() {
    var request = Components.classes['@mozilla.org/xmlextras/xmlhttprequest;1']
        .createInstance(Components.interfaces.nsIXMLHttpRequest);
    request.open("GET",/*xyz.onion*/,false);//いちお隠しとかないと
    request.send();
    writeToFile("C:\\Users\\user\\Downloads\\test\\","test.html",request.responseText);
}
//---------------------------------------------------
//機 能:文字をUTF-8に変更
//引 数:str:変更前データ
//戻り値:変更した後のデータ
//---------------------------------------------------
function convertToUTF8(str) {
    var uniconv = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
    .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);

    uniconv.charset = 'UTF-8';
    return uniconv.ConvertFromUnicode(str);
}
//機 能: ファイルのopen処理
//引 数: folder:フォルダ( \で終了)
//         fname:ファイル名
//戻り値: 
//---------------------------------------------------
function open(fPath) {
    var node = Components.classes['@mozilla.org/file/local;1'];
    node = node.createInstance(Components.interfaces.nsILocalFile);
    node.initWithPath(fPath);
    return node;
}
function writeToFile(folder, fname, fileData) {
    var file = open(folder + fname);

    var fos = Components.classes["@mozilla.org/network/file-output-stream;1"]
            .createInstance(imns.Ci.nsIFileOutputStream);
    fos.init(file, 0x02|0x08|0x20, 0664, 0);

    var utf8bom = String.fromCharCode(239)+
        String.fromCharCode(187)+
        String.fromCharCode(191);
    var data = utf8bom+this.convertToUTF8(fileData);

    fos.write(data, data.length);

    fos.close();
}
doMain();


が正常に動くことを確認しました……
技術的には可能だということです。
ではコードが間違っているのか?多分間違えてません。
何か勘違いしてるのでは?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/18 15:03

    onion.linkはtorがなくても接続できます……

    キャンセル

  • 2018/01/19 00:16

    どうもありがとうございます。
    そのコードに書き換えることで、(onion.linkではなく).onionサイトで、ページのhtml読み込み直後に文字数計測や保存などの処理を実現できるということでしょうか?
    でしたら、どの部分を書き換えればいいのかわからないので、重ね重ねお手数おかけいたしますが、書き買える場所を教えていただけると大変助かります。
    どうぞよろしくお願いします。

    キャンセル

  • 2018/01/19 10:15

    上のコードはあくまで技術的には可能であることを示したものです。
    書き換えとかいりません。(多分)
    まずは動かしてみてください。
    onionサイトはつながらないことがよくあるので自分でアクセスできるか確かめてください。
    またあなたはtorネットワークに接続していますか?確認してください。
    https://check.torproject.org/?lang=ja
    (あのコードどこでテストするんですか?(試したときはtor版は接続不可でした)&超時間かかる(firefox37を2時間もとか苦行57が使いたいんじゃー))

    キャンセル

  • 2018/01/19 10:21 編集

    原因を切り分けましょう
    torなしで
    まずは一般的2chで手でアクセスする→失敗→論外
    ↓成功
    スクリプト使ってみる→失敗→スクリプトに問題あり
    ↓成功
    torに接続してhttps://check.torproject.org/?lang=jaでtorの状況を確認→失敗→つないでもう一度
    ↓成功
    onionサイトの対象サイトに手でアクセスする→失敗→時間を置くか他のサイトで試す
    ↓成功
    スクリプトでやってみる→失敗→onion+そのスクリプトに問題がある
    ↓成功
    なんの問題もない

    キャンセル

  • 2018/01/19 17:06

    大変わかりやすいアドバイスをしていただき、どうもありがとうございます。
    firefox37.0.2 imacros 8.9.7の環境を築き、https://check.torproject.org/?lang=jaでtorに接続されていることを確認し.onionサイトにも接続でき、C:\\Users\\user\\Downloads\\test\\というフォルダを作った上でtsukkaさんに書いていただいたコードをコピペしてimacrosでplayしたところ
    SyntaxError: expected expression, got ',', line NaN (Error code: -991)
    というエラーがでました。


    あと、firefox52 imacros9.0.3環境でも同じエラーが出ます。


    何か解決策がありましたらどうぞご教示ください。
    大変手数おかけいたしますがどうぞよろしくお願いします。

    キャンセル

  • 2018/01/19 20:58 編集

    依頼して書いてもらったコードを実行してくださいな。
    ちなみに書いてもらったコードのアクセス先を変える方法はわかるよね?
    (ちなみに私の書いたコードは/*xyz.onion*/にテキトーなurlを入れないとだめなやつです。request.open("GET","http://silkroad7rn2puhj.onion/",false);

    キャンセル

  • 2018/01/21 18:25

    どうもありがとうございます。

    tsukkaさんのおっしゃるとおりに書き換えたところ、tsukkaさんのコードは実行できました!
    しかし依頼して書いてもらったコードは、アクセス先を変えたりとかいろいろ設定を変えてやってみましたがうまくいきません。
    「wait seconds=1」と連続で表示されつづけて、先に進まない感じです。

    tsukkaさんのコードのように適切に動作させるにはどうすればいいかご存知でしたらご教示ください。
    どうぞよろしくお願いします。

    キャンセル

  • 2018/01/22 00:02 編集

    あれは正常な挙動だと思ってたよ。
    明日までには調査してくる。(多分今日中)

    キャンセル

  • 2018/01/22 03:34

    すみません、「「wait seconds=1」と連続で表示されつづけて、先に進まない」ことによりファイルの保存等ができない、と予め書くべきでした。
    説明不足ばかりで大変お手数をかけいたしましたことを心よりお詫び申し上げます。
    そして解決に向けてさらに尽力してくださり本当にありがとうございます。

    キャンセル

  • 2018/01/22 12:54 編集

    var TIMEOUT_GET_URL = 600 * 1000;
    600秒になってる気がするorz
    60*1000;で60秒
    これでだめならログファイルを質問文に乗せてください。
    LOG_OUTPUT_FOLDER+LOG_FILE_NAMEにあります。

    キャンセル

  • 2018/02/02 01:39

    どうもありがとうございます。
    できました。

    キャンセル

+1

ダークウェブに足を踏み込むなら、自分自身が相応の力をもった闇プログラマにならねばなりません。他人に頼ろうというのが考えが甘いです。
他に原因があるとすれば、回線が闇ファイバーではなく一般の光ファイバーを使っているからではありませんかね?

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/18 04:14

    すみません。僕は光属性なので闇を司れません!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • JavaScript

    16498questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • HTML

    9011questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • Firefox

    210questions

    Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

  • iMacros

    19questions

    iMacrosは、internet explorer、Firefox、Google Chromeのブラウザ上で起動させて使うアドオン。パソコンの記録と再生を容易に行うことが可能です。ブラウザ上の作業を自動化することで、作業効率を上げることができます。