実験:指定されたURLのWebページとユニティグラブすべての画像や保存をダウンロード

気まぐれで、私は、Webページ上の資源節約時々感じることのバッチフェッチの途中でリソースに対応するURLを入力する方法はありません、非常に面倒です。

考える必要があります。

1.どのようにページのURLのHTMLソースを取得するには?

2.どのようにそれに対処するために必要な資源でHTMLの広大な海と一致するには?

3.どのように一括ダウンロードのリソースアドレスに応じたリソースの集合が得られるのでしょうか?

一般4.ダウンロードしたファイルのストリームリソースを、指定されたリソースの種類を生成し、それを保存するにはどのように?

 

それは知識が必要です。

1.基本ウェブクローラーは、httpリクエストの送信方法

正規表現を使用して2.C#が、HTML RUL URLの主なニーズを特定することです

3.UnityWebRequestクラスファイルストリームのダウンロード

4.C#ファイルのクラスとストリームクラスと他の基本的なファイル操作

 

達成するために、次のサブ項目:

ここでは、他の多くのオンラインデータ収集手順は、一言で言えば存在する場合に、爬虫類が導入された話ではありません情報とデータのページです。

最初のステップは、それがHTTPリクエストと言うことができるWeb要求を送信することです。

これは、ブラウザを開き、多くのブラウザのように、すべてのページには、対応するHTMLソースコードを持っているので、例えば、ページ上の正しい情報やデータを表示することができました、生産効果は基本的に同様である入力後、あなたとURLアドレスを入力し、次のようなすべての機能を、ページのソースコードのサポートを表示するには、Googleのブラウザは、私は、多くの場合、<head>セクションのホームページに移動するHTMLニャー巣のとおりです。

 

 

HTMLソースコードが隠された情報とデータの現在のページの多くを見ることができ、リンクやスタイルシートや他の多くのリソースがあります。これは、HTMLソースコードを表示し、閲覧することができ、ことは注目に値することページ全体が完成読み込み、要求に対する正常な応答があること、この手段のWebのURLアドレスした後にのみ、例えば、もちろん成功した場合は、障害のさまざまな状況があるだろうが、我々 RULは、多くの場合、アドレスを入力した後、404ヒント、これはエラーが発生したHTTPリクエストで、ウェブページ要求404は、サーバが見つからなかったことを示しています。エラーの他の多くの種類があります。なぜあなたは、その後のHttpリクエストを送信する際にエラーに対処する方法を見つけるか、次のタスクに進みますので、これを理解したいです。

我々は、HTTPリクエストを送信することができます多くの方法がありますが、Unityはまた)Web要求が、私は単にコードショットの後に、この機能は自動的に不快のコードは本当にきちんとした行を挿入することはできませんよ:(方法を更新しました

 

 

クラスの主な用途は、主にダウンロードおよびアップロードファイルに使用されている、やや似てUnityWebRequestで、前のクラスWWWでユニティ。

次の名前空間を導入するには:

 

 

UnityActionは、主にパラメータとして自動的にHTMLソースを要求した後に返すことができます。それは本質的に、一般的なデリゲートです。

 

 

複数からの一般的なパラメータは、(特にコールバックコルーチンに容易遅延パラメータを転送することができる)は、非常に有用なクラスはありません

もちろん、内蔵の方法ユニティ送信Web要求に加えて、C#はまた、いくつかのクラスをカプセル化し、あなたは、例えば、一回の使用を選ぶことができます HttpWebRequest,WebClient,HttpClient等:

このように:

 

 

成功した場合、Web要求をURLアドレスのHTMLソースコードを指定して、次のステップを実行することができます。

第二段階は、HTMLを必要としている収集データに、この場合には、これらの写真は、アドレスをリンクからソースコードを見つけることです。

例えば、それは次のような状況であることがあります。

 

 

 

要約すると、一般的に使用されるHTMLタグの最初の使用は、<IMG>写真のほとんどを見つけることが来るかもしれませんが、これらのラベルのいくつかの写真がある範囲内ではありません。そして、時には、その後に、でも絵のアドレスの<img>タグの中に、それはまだ、その後実行するための合法的な直接URLアドレスとして、チェーンまたはチェーンの出現内の連鎖外の可能な違いですが、それはチェーン内にある場合だけでなく、ドメイン名のアドレスを補完するので、私たちは、URLの正しいドメイン名を識別するための方法を見つける必要があります。

一致する文字列の内容は、最も効果的な方法は、ここで、本実施形態で例示し、正規表現である、上記の方法を識別するために、正規表現を使用する必要があります:

1.マッチングURLのドメインアドレス:

民間のconst文字列URLRealmCheck = @ "(HTTP | HTTPS)://(WWW。)(\ + W(\)。?)+?"。

2.マッチURLアドレス:

民間のconst文字列URLStringCheck = @ "((HTTP | HTTPS)://)(([-ZA-Z0-9 \ ._-] + \ [a-zA-Z]の{2,6})|(。 [0-9] {1,3} \ [0-9] {1,3} \ [0-9] {1,3} \ [0-9] {1,3}))(。。。。 [0-9] {1,4})*(/ [-ZA-Z0-9 \&%_ \ ./-〜 - ] *) "?。

3.マッチタグ:(ケース鈍感内のHTMLの<IMG> URLアドレス、前記パケット<imgUrl>所望のURLアドレス用)

民間のconst文字列imgLableCheck = @ "の<img \ B [^ <>] *?\ bsrc [\ sの\トン\ rを\ n]は* = [\ sの\トン\ rを\ n]は* [" " ']?[ \ S \ T \ R \ n] *(?<imgUrl> [^ \ S \ T \ R \ n "" '<>] *)^ <>] * /??[\ sの\ T \ R \ N] *> ";

4.マッチングインナー<A> HTMLタグのHREF属性のURLアドレス:(大文字小文字を区別しないが、主に深い探索パケットの前記<URL>所望のURLアドレス用)

民間のconst文字列hrefLinkCheck = @ "(私?)<\ S [^>] *のhref =([? ' ""]?)(?!ジャバスクリプト| __doPostBack)?(<URL> [^'" "\ sの*#<>] +)[^>] *> ";

指定されたピクチャタイプマッチング:(主鎖用)

民間のconst文字列がjpg = @ "\ JPG。";
民間のconst文字列PNG = @ "\ PNG。";

特定の正規表現マッチングの使用法は、多くのオンラインチュートリアルがあり、私はここで言うことはできません。

 

第一の外側鎖、ここで指定された一致するファイルの種類を一致、画像マッチング2つの方向からHTMLソースを考えます。

以下は、チェーンの試合で、ドメインアドレスと一致する必要があります。

 

あなたがチェーン内のドメイン名のアドレスを持っていたら簡単にアドレスを一致させることができます:

 

正規表現を使用すると、次の名前空間を導入する必要があります。

 

 

ダウンロードを有効にすることができ、画像の後imgLinksのすべてに一致する正規表現を使用してください。

第3のステップは、有効な画像のURLの送信をダウンロードすることです:

 

またこれらのURLのダウンロード送信を同期させることができますが、これは、ダウンロードの全体の進行を制御するために追加の最大スレッド数だけでなく、より難しいが必要な場合があります。

特定の送信コルーチンは次のとおりです。

 

それだけでなく、エラーが発生した場合でも、唯一正常にダウンロードを完了メソッドを呼び出し、あなたは、このようにエラーが発生回避、呼び出す必要があることを指摘し、すぐに自動的に一時停止ダウンロードの価値があります。通常の状況下では、エラーが発生した場合でも、だけでなく、次のファイルのダウンロードタスクに進んでください。

 

最後のステップは、以下のいずれかの提供、多くの方法が、ここにあるファイルのファイル指定されたタイプにして保存されたデータストリームをダウンロードすることです:

 

 

拡張:

時々、単一のHTML内のすべての画像リンクは完全にHTML内のサブリンクはまた、URLアドレスリソースのニーズを持っている可能性があるため、我々はより深いトラバーサルを追加することを検討することができ、私たちのニーズを満たすことができません。これは、HTMLリンクのアドレスと一致するように、その後、こうして循環程度の深さに一致する、サブリンクアドレスHTMLソースを与える必要があります。

サブリンクは、HTML HREF <A>タグ属性を検索してもよい一致、上記属性は参考のためにここ層の深さに一致する、正規表現マッチングを与えられています。

 

 

 

テスト:写真JPG形式やダウンロードにホームページへのリンクでニャー巣をマッチングここでクロールの深さは、Dディスクに保存します。(UIは何気なく気にしません)

 

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/koshio0219/p/11851507.html