2

今すぐこのリンクにアクセスすると、VBScript エラーが発生する可能性があります。

一方、最初にこのリンクにアクセスしてから (同じセッションで) 上記のリンクにアクセスすると、ページが表示されます

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

私の質問: Python で最初のページをスクレイピングするにはどうすればよいですか? urllib、urllib2、mechanize など、考えられるすべてのことを試しましたが、500 のエラーまたはタイムアウトしか発生しません。

答えは機械化にあると思いますが、私の機械化法はこれを解読するのに十分ではありません. 誰でも助けることができますか?

4

2 に答える 2

8

それは常に要求/応答モデルに帰着します。必要な応答が得られるように、一連のhttpリクエストを作成する必要があります。この場合、各リクエストを同じセッションの一部として扱うサーバーも必要です。そのためには、サーバーがセッションを追跡している方法を把握する必要があります。これは、Cookieから非表示の入力、フォームアクション、投稿データ、クエリ文字列まで、さまざまなものである可能性があります。この場合、私は自分のお金をクッキーに入れると推測しなければなりませんでした(私はリンクをチェックしていません)。これが当てはまる場合は、最初のリクエストを送信し、取得したCookieを保存してから、2番目のリクエストと一緒にそのCookieを送信する必要があります。

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

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

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

于 2009-08-21T20:46:55.383 に答える
1

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

また、Tamper Dataは、スクレイパーを作成するときに便利なプラグインであることがわかりました。

于 2009-08-21T20:38:27.337 に答える