0

Pythonでurllib2を使用してCookieとphpssidを送信するにはどうすればよいですか? 実際には、ブラウザでログインしたページを読みたいのですが、このスクリプトで読み込もうとすると、何かを見逃しているように見えるテキストに遭遇します。私のスクリプト:

#!/usr/bin/python
import urllib2
f = urllib2.urlopen('http://mywebsite.com/sub/create.php?id=20')
content = f.read()
file = open('file.txt', 'w')
file.write(content)
file.close()

実際のページの代わりに保存したエラーメッセージ:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/number/domains/1number.com/public_html/s4/app/mywidgets.php:1) in /home/number/domains/1number.com/public_html/s4/app/mywidgets.php on line 23

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/number/domains/1number.com/public_html/s4/app/mywidgets.php:1) in /home/number/domains/1number.com/public_html/s4/app/mywidgets.php on line 23

Warning: Cannot modify header information - headers already sent by (output started at /home/number/domains/1number.com/public_html/s4/app/mywidgets.php:1) in /home/number/domains/1number.com/public_html/s4/lib/webservice.php on line 0

正確な問題は何ですか?(私が望むものを実装する簡単な方法を教えてください)

前もって感謝します

4

1 に答える 1

0

SID については、それを送信する方法の 1 つはクエリ文字列の一部として行うことであり、既にそれを行っています。少なくとも、それid=20があなたの URL の一部であると思います。

Cookie の場合、必要なものはすべてcookielib.

CookieJarサーバーとのセッションに使用する を作成するだけで簡単です。ブラウザから Cookie をインポートする場合は、次の 3 つの方法があります。

  1. お使いのブラウザが古い Netscape Cookie ファイル形式を使用している場合は、FileCookieJar.
  2. ブラウザーが sqlite データベースを使用している場合 (少なくとも Firefox と Safari/Chrome がそうであるように)、sqlite3モジュールを使用してそれを読み取り、CookieJar手動で入力します。
  3. 最悪の事態が発生した場合は、Cookie をブラウザーからハードコードされた文字列としてスクリプトにコピー アンド ペーストし、CookieJar手動でポピュラー化します。

の使用方法に関するドキュメントを読みたくない場合は、最後の例cookielibを参照してください。これは、まさにあなたがやりたいことであるwithの使用方法を示しています。CookieJarurllib2

問題がある場合は、ドキュメントをお読みください。

一方、あなたが私たちに示しているのは、(a) エラーではなく警告であり、(b) スクリプトではなく、明らかにサーバー側の問題です。サーバーは、大量の警告や空白のページを吐き出すことは決してありません。あなたまたは同僚の 1 人がサーバー コードを担当している場合は、最初にそれを修正する必要があります (そして、現在の単純な Python スクリプトは優れた回帰テスト ケースとして機能します)。

于 2013-01-07T20:31:38.843 に答える