テキストがぼやけたHTMLファイルをダウンロードする方法

テキストがぼやけたHTMLファイルをダウンロードする方法

私はFirefoxを使用しており、読み込まれたウェブサイトで英語のテキストを見て読むのに問題はありません。

Firefoxで「保存」をクリックし、関連するWebページをテキストファイルとして保存すると、テキストファイルの内容をすべて読むことができます。すべての文字を読むことができます。

しかし、Downthemallを使用して同じWebページを保存し、.htmlとして保存すると(Dtaを使用する唯一の方法のようです)、保存されたHTMLファイルには読み取れない文字があり、より重要なことに、これらの文字は重要です。私は読んで抽出することに興味があります。 Firefoxでソースを見ると、読み取れない同じ出力が表示されます。

デフォルトでは、Webサイト(yunfile.com)をクリーンアップしてファイル名とダウンロードリンクを収集したいと思います。ファイル名を読み取れないことを除いて、すべてが大丈夫でしょう。

以下はサンプルリンクです。http://page3.dfpan.com/file/syg65488/0141cd27私が経験している問題は、ファイル名の行に「ダウンロード中」と書かれていることです。

HTMLファイルのテキストは次のとおりです。 ¡£¢¢£¥£¢½ãòá碽áòá

Firefoxでは、同じテキストは次のようになります。 20110601.part1.rar

これらのHTMLファイルを変換するために実行できるプログラムとコマンドはありますか?

どんなアドバイスも本当にありがとうございます。

ベストアンサー1

これはエンコーディングの問題ではありません。何が起こるかは、サーバーにファイル名が破損したHTMLを返し、それをクリーンアップするためのいくつかのJavascriptがあることです。

幸いなことに、修正は非表示になっているか難読化されていないJavaScriptで行われ、簡単に元に戻すことができます。 JSコードは

function codeAndEncode(_key,_str){
     var keyUnicodeSum=0;
     var codedStr = "";
     for( j = 0; j<_key.length; j++ ){
          keyUnicodeSum += _key.charCodeAt( j );
     }
     for( i = 0; i<_str.length; i++ )
     {
          var _strXOR = _str.charCodeAt(i) ^ keyUnicodeSum;
          codedStr += String.fromCharCode( _strXOR );
     }
     return codedStr;
}

var filename = codeAndEncode("111", "ëúòüýúòý¡£¢¢£¥£¢½ãòá碽áòá");

とても簡単です。値を計算し、それを文字列の各文字とXORします。フォーム変更とフォームキャンセル操作は同じです。クローラで使用するすべての言語に翻訳できます。たとえば、以下はUNDO破損したPerlコードです。

$ perl -CA -l -we 'my $sum = 0; $sum += ord foreach split //, $ARGV[0]; print $ARGV[1] ^ (chr($sum) x length($ARGV[1]))' 111 "ëúòüýúòý¡£¢¢£¥£¢½ãòá碽áòá"
xiaonian20110601.part1.rar

グラインダーの使用DOM復元する必要があるHTMLツリーのノードにアクセスしdocument.getElementById("file_show_filename")て識別します。document.getElementById("file_down_filename")また、クローラが使用するHTMLパーサーに合わせて調整することもできます。

ファイル名を変更する目的はクロールをより困難にすることであるため、サイト管理者は時間の経過とともに修正を再現するのが難しくなります。 Webサイトがどのトリックを使用しても破損したファイル名を保存するには、自動化された環境でFirefoxを実行できます。バラよりSeleniumRCに加えて、JavaScriptを描いた後にコンテンツを含むWebページを取得するための良いツールはありますか?そしてLinuxでFirefoxヘッドレスを実行する方法(例:libgtk-x11-2.0.so.0は不要)?

おすすめ記事