2010-12-01 16 views
5

私のディストリビューターの1つが製品ごとに在庫している品目の数量を掻き取ろうとしています。彼らはこのデータのエクスポート方法を知らない。だから私は、誰かが、あなたがデータにアクセスするためにログインしなければならないPHPでサイトを掻き集める方法の正しい方向に私を向けるのを助けることができるかどうか疑問に思っていますか? SSLを使用した安全なサイトではありません。任意のヒントについて安全なログインを使用したPHPサイトの掻き取り

おかげで、

クリスエドワーズ

+1

基本アクセス認証などのログイン方法の詳細を指定する必要がありますか? – ajreal

答えて

12

をどのように動作するかのステップのためのステップを見ることができるチュートリアルへのリンクです。 cURLの基本的な機能は、HTTPリクエストで必要な設定を行い、応答を受信できるようにすることです。これは、必要に応じて様々な詳細度で行うことができます。

あなたがしたいことは、基本的にHTTPリクエストを作成して、必要なページを取得し、レスポンスのHTMLからデータをスクラップすることです。これは非常に簡単ですが、あなたの場合はいくつかの障害を克服する必要があります。

「ログインする必要があります」と言うと、何かを掻き集める前に過去に取得しなければならないログインフォームがあると仮定しています。 cURLはあなたの助けを借りてログインを偽装することができます。

まず、手動で行うのと同じように、cURLを使用してログインフォームを「提出する」必要があります。正しいかどうかを確認するには、手作業でフォームを送信するときにブラウザが行うHTTPリクエストを確認し、cURLを使用して同じリクエストを作成する必要があります。詳細なHTTPリクエストを確認するには、Firebug、Chromeのデベロッパーツール、Fiddler debugging proxyを使用できます。

おそらく、有効なログインフォームを送信した後、サーバーは後続のリクエストであなたの認証に使用するクッキーを送信します。このCookieは、サーバーのHTTP応答(Set-Cookieヘッダー)のヘッダーの一部になります。そのクッキーの価値を覚えておいて、サーバーへの後続のスクラップにCookieヘッダーを含める必要があります。本質的には、**¹**にログインしていればブラウザーの動作を正確に行います。

最後に、ターゲットを見つけるために複数の往復を行う必要があります。多分、あなたが掻きする必要があるURLはあらかじめ分かっていないかもしれません。あなたが掻きたいURLのいくつかの可変部分を見つけるために "リスト"ページを削る必要があります。これは、単に「リスト」ページを削り、必要なものを見つけてから、本当に必要な「詳細」ページを削って、問題に簡単に取り組むことで解決できます。

Web上に多数のcURLチュートリアルがあるので、私はコードを提供していませんが、計画が何であるか知っていると作業がはるかに簡単になります。


これをやって周りに行くために別の(より速く、しかし、粗)の方法は、単純に、自分のログインあなたが得たCookieの値を見て、ちょうどあなたのこすりの要求にそれを貼り付けてあるを¹。あなたがもはやcURLでログインを偽造する必要がなくなるという点が有益です。ツールが使用されるたびに手動でログインし、ツールに資格情報を提供する必要があります。

1

それはあなたのスクリプトがログインすることができますあなたがそれに

link

になりますカールと呼ばれるライブラリがあり、クッキー/セッションを使用それに続くページからコンテンツをスクラップすると、どのくらいの深さにする必要があるか、どのリダイレクトなどに従うべきかを設定できます。 これを使用してデータを投稿することもできます。基本的には素晴らしいツールです。ここで

は、あなたがしたい場所を取得する最も簡単な方法は、cURLを利用しているにもあなたはそれが

http://devzone.zend.com/article/1081

+0

-1。これは正式なものですが、これは彼をさらに助けるものではありません。単に "use X"と言っても良い答えとは言えません。 – user187291

+0

私は彼らのウェブサイトへのリンクを提供しています。ここでは、PHPと一緒にライブラリを使用する方法に関するドキュメンタリーがあります。彼は私が望むすべてを行う機能を私に与えないと言いました。 – Breezer

関連する問題