0

私はこれを約1週間理解しようとしてきましたが、良い解決策を思いつくことができません. それで、誰かが私を助けてくれるかどうか見てみようと思いました。これは、私がこすり取ろうとしているリンクの1つです。

http://content.lib.washington.edu/cdm4/item_viewer.php?CISOROOT=/alaskawcanada&CISOPTR=491&CISOBOX=1&REC=4

右クリックして画像の場所をコピーしました。これはコピーされたリンクです:

(私は新しいので、これをリンクとして貼り付けることはできません) http:// content (dot) lib (dot) Washington (dot) edu/cgi-bin/getimage.exe?CISOROOT=/alaskawcanada&CISOPTR=491&DMSCALE=100.00000&DMWIDTH =802&DMHEIGHT=657.890625&DMX=0&DMY=0&DMTEXT=%20NA3050%20%09AWC0644%20AWC0388%20AWC0074%20AWC0575&REC=4&DMTHUMB=0&DMROTATE=0

表示されている明確な画像の URL はありません。明らかに、これは画像がある種のスクリプトの背後に隠されているためです。試行錯誤の末、「CISOPTR=491」の後に「.jpg」を入れるとリンクが画像URLになることがわかりました。問題は、これが画像の高解像度版ではないことです。高解像度版にアクセスするには、URL をさらに変更する必要があります。curl と PHP を使用してスクリプトを作成しようとしていることに言及する @Stackoverflow.com の記事をたくさん見つけました。「491」は画像番号です。この番号を変更して、同じディレクトリ内の他の画像を見つけることができます。したがって、一連の数字をスクレイピングするのは非常に簡単なはずです。しかし、私はまだスクレイピングの初心者であり、これは私のお尻を蹴っています. これが私が試したことです。

cURL を使用してリモート イメージを取得し、再サンプリングする

これも試しました。

http://psung.blogspot.com/2008/06/using-wget-or-curl-to-download-web.html

私は Outwit Hub と Site Sucker も持っていますが、それらは URL を画像ファイルとして認識せず、そのまま渡します。SiteSucker を一晩使用したところ、40,000 個のファイルがダウンロードされましたが、60 個だけが jpeg で、必要なファイルはありませんでした。

私が実行し続けるもう1つのことは、手動でダウンロードできたファイルです。ファイル名は常にgetfile.exeまたはshowfile.exeのいずれかであり、拡張子として「.jpg」を手動で追加すると、画像をローカルで表示できます.

元の高解像度画像ファイルに到達し、ダウンロード プロセスを自動化して、これらの画像を数百枚スクレイピングするにはどうすればよいですか?

4

1 に答える 1

0

右クリックして画像の場所をコピーしました。これはコピーされたリンクです:

タイトルに「.exe」が含まれていることに気付きました。クエリ文字列の中身を見てください:

DMSCALE=100.00000
DMWIDTH=802
DMHEIGHT=657.890625
DMX=0
DMY=0
DMTEXT=%20NA3050%20%09AWC0644%20AWC0388%20AWC0074%20AWC0575
REC=4
DMTHUMB=0
DMROTATE=0

この画像の元のソースがデータベースまたは何かにあり、サーバー側のフィルターを介して渡されていることを強く示唆しています(「何らかのスクリプト」が意味するものかどうかはわかりません)。つまり、これはstaticではなく、動的に生成された contentであり、動的テキスト コンテンツの場合と同じ注意事項が適用されます。必要なものをサーバーに吐き出させるために、サーバーに提供する指示を理解する必要があります。あなたの目の前にあるものはほとんど... SiteSucker などで適切に処理されない場合は、HTML パーサーを使用して自分でアドレスをスクレイピングしてください。

于 2012-05-05T09:13:45.777 に答える