2011-12-23 43 views
0

私はPythonコードでURLを開きたいですが、私は "webbrowser"モジュールを使いたくありません。私はそれをもう一度試してみました(実際のデフォルトブラウザでURLを開きましたが、これは私が望んでいないものです)。だから、私はurllib(urlopen)を使用して機械化してみました。どちらも自分のプログラムで正常に動作しましたが、どちらも実際に私の要求をウェブサイトに送っていませんでした。ここでブラウザを使わずにPythonでURLを開くにはどうすればよいですか?

は、私のコードの一部です:

finalURL="http://www.locationary.com/access/proxy.jsp?ACTION_TOKEN=proxy_jsp$JspView$SaveAction&inPlaceID=" + str(newPID) + "&xxx_c_1_f_987=" + str(ZA[z]) 

print finalURL 

print "" 

br.open(finalURL) 

page = urllib2.urlopen(finalURL).read() 

私は、サイト、locationary.comに行くとき、それは変更が行われていることを示していません!私が "ウェブブラウザー"を使用したとき、私はURLを提出した後、ウェブサイト上で変更を示しました。実際にブラウザを開くことなく、ウェブブラウザと同じことをするにはどうすればいいですか?

私はウェブサイトが「GET」望んでいると思います

+0

'?' 'proxy.jspACTION_TOKEN ='のような 'proxy.jsp?ACTION_TOKEN =' –

+0

サービスが 'POST'か' GET'要求を望んでいるかどうか知っていますか? –

+0

あなたの問題には特に関係しませんが、 'urllib.urlopen()'は廃止され、Python 3.0では削除されていることに注意してください。 ['urllib2.urlopen()'](http://docs.python.org/library/urllib2.html#urllib2.urlopen)を使用してください。 – Amadan

答えて

0

A HTTP GETクライアント側の任意の特定のコードまたはアクションを必要としない:それはちょうど、ベースURL(のhttp://サーバー/)です+パス+オプションのクエリ。

URLが正しい場合は、上記のコードが有効です。あなたが次に試すことができるいくつかのポインタ:

  1. URLは本当に正しいですか? Firebugまたは同様のツールを使用して、完全なURLとHTTPリクエストからのヘッダフィールドを取得するネットワークトラフィックを監視します。

  2. 多分、サイトにログインする必要があります。その場合は、正しくクッキーを設定してください。

  3. 一部のサイトでは、(ディープリンクから保護するために)正しい「参照元」フィールドが必要です。ブラウザがリクエストに使用したリファラーヘッダーを追加します。

  4. サーバーのログファイルは、そのような問題が発生したときに、そのサーバーにアクセスすることができます。

+0

申し訳ありません。私のコードに疑問符がありますが、ここに置いたときに何とか消えてしまいました。私は誤ってバックスペースに当たったと思う。 – jacob501

+2

これは本当に私の質問に対する答えではありません。 – jacob501

+0

これは私の質問に答えません。削除してください。 – jacob501

1

私はあなたが取り組んでいるものをOSわからないんだけど、あなたはhttpscoop(Mac)またはシオマネキ(PC)またはWiresharkのようなものを使用している場合、あなたはトラフィックを見て、何が起こっているか見ることができるはずです。ウェブサイトがリダイレクト(ブラウザがフォローしている)やその他の後続のアクティビティがある可能性があります。

HTTPスニッファを開始し、Webブラウザを使用して要求を行い、トラフィックを監視します。これを済ませたら、pythonスクリプトで試してみて、リクエストが行われているかどうか、HTTPトラフィックには何があるかを確認してください。これは、切断がどこにあるかを特定するのに役立ちます。

関連する問題