2009-08-21 1 views
2

今すぐthis linkにアクセスすると、おそらくVBScriptエラーが発生します。このフレームをどのように削り取ることができますか?

一方、this link firstを訪問し、(上記のリンク)(同じセッション内)にアクセスすると、ページが表示されます。

このアプリケーションの設定方法では、最初のページは2番目(メイン)ページのフレームとして機能します。少しクリックすると、それがどのように機能するかがわかります。

私の質問:最初のページをPythonでスクラップするにはどうすればよいですか?私は考えることができるすべてを試しました - urllib、urllib2、mechanize - 私が得るのは500エラーまたはタイムアウトです。

私は答えがmechanizeにあると思っていますが、私のmechanicalize-fuはこれを解読するのに十分ではありません。誰も助けることができますか?

答えて

8

リクエスト/レスポンスモデルは常に下にあります。あなたは、あなたが望む応答を得るために、一連のhttp要求を作成するだけです。この場合、サーバーは同じセッションの一部として各要求を処理する必要があります。これを行うには、サーバーがどのようにセッションを追跡しているかを把握する必要があります。これは、クッキーから隠れた入力、アクションの作成、データの投稿、またはクエリ文字列に至るまで、さまざまなものがあります。私が推測しなければならないのは、私はこのケースでは私のクッキーに私のお金を入れたい(私はリンクをチェックしていない)。これが当てはまる場合は、最初のリクエストを送信し、戻ってきたクッキーを保存してから2回目のリクエストとともにそのクッキーを送信する必要があります。

最初のページにはボタンとリンクがあり、2番目のページに移動することもできます。これらのリンクには<A href="http://cad.chp.ca.gov/iiqr.asp?Center=RDCC&LogNumber=0197D0820&t=Traffic%20Hazard&l=3358%20MYRTLE&b=">のようなものがあり、最初のページで多くのゴブライブが生成されます。

"Center=RDCC&LogNumber=0197D0820&t=Traffic%20Hazard&l=3358%20MYRTLE&b="部分は、最初のページから取得する必要があるセッション情報をエンコードします。

もちろん、両方を行う必要があるかもしれません。

+0

この最も優れた回答を編集して、URLセッショントラッキングとCookieセッショントラッキングを含める必要性を感じました。 –

+0

私を正しい方向に押してくれてありがとう。あなたがクッキーの取り扱いで概説したアプローチは、まさに正しい解決策でした。そして、私にとって答えは機械化されたクッキーを手動で処理することでした[1]。 [et voila!] [2] [1] http://www.google.sourceforge.net/mechanize/doc.html [2] http://twitter.com/humboldtCHP – hanksims

1

機械化に加えてBeautifulSoupを試してみることもできます。私は肯定的ではありませんが、DOMをフレーム化されたページに解析できるはずです。

また、私がスクレーパーを書いているときには、Tamper Dataがかなり役に立つプラグインであるとわかります。

関連する問題