0

ログインとパスワードをPythonスクリプトからeBayサインイン ページに渡そうとしています。後でこのスクリプトを「 Google App Engine」から実行したい

「機械化」の使用を提案されました。残念ながら、私にはうまくいきませんでした:


IDLE 1.2.4      
>>> import re
>>> import mechanize
>>> br = mechanize.Browser()
>>> br.open("https://signin.ebay.com")

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    br.open("https://signin.ebay.com")
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 203, in open
    return self._mech_open(url, data, timeout=timeout)
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 255, in _mech_open
    raise response
httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt
>>> 

以前、私はPythontwillを使用しようとしていましたが、いずれも機能しませんでしたが、1 人のサポーターがmechanizeの最新バージョンをダウンロードして次の手順を実行するよう提案するまでは機能しませんでした。

  1. コンピューターで次のフォルダーを見つけます: " C:\Python25\Lib\site-packages\twill\other_packages\_mechanize_dist "

  2. その名前を「_mechanize_dist_backup」に変更します (したがって、フル パスは「C:\Python25\Lib\site-packages\twill\other_packages\_mechanize_dist_backup」である必要があります)。

  3. 「 mechanize」フォルダー (「mechanize-0.2.2 」にあります - 「mechanize 」公式サイトからダウンロードして解凍したフォルダー) をコピーし、「 C:\Python25\Lib\site-packages」に貼り付けます。 \twill\other_packages " (フル パス、つまり " C:\Python25\Lib\site-packages\twill\other_packages\mechanize ")

  4. その名前を「_mechanize_dist」に変更します (フル パスは「C:\Python25\Lib\site-packages\twill\other_packages_mechanize_dist」です)。

  5. 「 _mechanize_dist_backup 」から「 ClientForm」ファイルをコピーし、「 _mechanize_dist」に貼り付けます(実際、「 ClientForm 」という名前の 2 つのファイルが見つかりました。1は Python ファイルで、もう 1 つはコンパイル済みの Python ファイルです。両方をコピーして貼り付けました。彼ら)。

これらの手順をすべて実行した後、 PythonのツイルシェルからeBayアカウントにログインしようとしましたが、うまくいきました!!! 同じ方法でYahooのメールボックスにログインして、メールをチェックすることもできました!

しかし今、ジレンマがあります。自分のスクリプトを " Google App Engine "にデプロイする方法がわかりません。

以前、 App Engineプロジェクトでサードパーティ ライブラリを使用する場合は、アプリケーションをデプロイするときにそれらをアプリケーションに含めるだけでよいとアドバイスされていました。たとえば、 twill の場合、 twill フォルダをコピーするだけで済みます。アプリケーションのフォルダーに入れ、デプロイします。

しかし、このツイルフォルダーをサード パーティのライブラリとして含めるだけでなく、これらすべての変更を " C:\Python25 " (" C:\Python25\Lib\site-packages\twill\other_packages 内) で実行しました。 "、正確に言うと) 私のアプリケーション フォルダー (スクリプト (" my_script .py" ファイル) があるフォルダー) は " E " ディスクにあります。

誰か、ここで何か提案してもらえますか?

4

2 に答える 2

2

エラー メッセージは、mechanize がサイトの robots.txt ファイルに従っていることを示しています。

自動化された方法で eBay のサイトにアクセスしたい場合は、eBay の API を使用する必要があります。そうでない場合、robots.txt を無視する独自のソリューションを構築する場合は、ブロックされても驚かないでください。App Engine からの自動クエリがアプリから送信されることについて Google に苦情を申し立ててください。

于 2010-09-08T19:26:11.453 に答える
2

GAE 展開の問題に関しては、@brilliant は、扱っているコードがすべて純粋な python 2.5 であるように見えます (唯一の実際のブロックの問題は、そうでない場合です。バイナリ拡張が許可されておらず、Python 2.6 以上を必要とするコードが許可されていません)。 、そしてそれが現時点でのGAEのやり方です)。

したがって、この仮定の下では、コードを App Engine にデプロイする際の唯一の問題は、すべてのコードを(もちろん、GAE はそこからまったく何もデプロイしません。nada, zilch) ではなく、GAE プロジェクトのディレクトリ (私が提案する) に配置することです。すべての .py ファイルの再帰的な zip のみ -- 特にすべての .pyc ファイルを削除する前に;-)。site-packagesdev_appserver.pyzip -r

全体として、適切なシェル コマンドをいくつか使用するだけの問題です: (おそらくcp -Rzip -rUnix 以外のシェルでは難しいでしょうが、Windows でも cygwin の bash を使用して実行できます... いずれにせよ、ほとんどそれ自体が「開発」の問題です;-)。

于 2010-09-08T21:34:06.673 に答える