0

古いデータベースからいくつかの画像をキャプチャしようとしています。

スクレイパーを作成するときは、Ruby を使用して (ただし、php にも慣れています)、Web サイトを直接 open() し、そのコンテンツを読み取ります。curl ...スクリプトを使用して適切なコマンドを呼び出すこともあります。

ただし、私がスクレイピングしているデータベースはページを返し、サーバー側のスクリプトで想定される一連の乱数を使用して、ターゲット画像に画像名を埋め込みます。例えば:

<img ... show_image.jsp?343523.jpg

ただし、この show_image スクリプトを直接呼び出すことはできません (拒否)。Web サイト全体に埋め込まれている場合にのみ機能します。

curl を使用したり、ruby や php 内でページ全体をダウンロードしたりできます1929.2.14.aspxshow_image.jsp?343523.jpg?

単純に aspx ファイルを直接 curl すると、当然 html が取得されます。ブラウザベースの「Web アーカイブ」機能が手動で機能するように、スクリプトを使用して html と埋め込み画像の両方を保存するにはどうすればよいでしょうか。

ヒント、チュートリアルへのリンクなどは大歓迎です...

4

2 に答える 2

0

スクリプト (たとえば、show_image.jsp) が単純なリファラー チェックを実行している場合、GET を行う前にリファラーを設定するように PHP (または Ruby) スクレイパーを作成することで回避できる場合があります。

curl --referer http://www.example.com http://www.example.com/show_image.jsp?bar.jpg
于 2012-04-23T22:04:18.600 に答える
0

ルビーで Web サイトをスクレイピングするには、おそらく mechanize を使用する必要があります。これを行うと、Cookie とリファラーが設定されるため、画像の取得は次のように簡単になります。

agent.get(image_url).save_as 'local_filename.jpg'
于 2012-04-24T00:50:21.697 に答える