1

私はPythonが初めてです(過去にいくつかのJavaを行いました)。私は最近、年に 1 回、約 20 時間かかるプロセスを自動化することにしました。ベンダーの Web サイトに、ベンダーのログイン フォームを使用してログインする必要があります。次に、注文を選択できる新しいフォームをロードし、アイテム番号を送信できる別のフォームをロードします。これにより、商品のサイズとサイズごとの価格がページに読み込まれます。この情報を取得して、スプレッドシートに入力します。行には、サイズの数と価格 (item,sm,med,lg,9.99,10.99,12.99) に基づく列があります。その後ブラウザに戻り、戻るボタンを押して次の項目番号をフィールドにロードします。いろいろと情報発信していきますので、よろしくお願いします。

いくつかの調査を行ったところ、mechanize と呼ばれる Python のライブラリを見つけました。これにより、Web フォームの送信とデータの収集が容易になるようです。

'''
Created on Sep 29, 2012

@author: Teddy
'''

from tkinter import *
import mechanize
import urllib
import logging
import sys
import http.cookiejar

def main():


br = mechanize.Browser()
cj = http.cookiejar.LWPCookieJar()
br.set_cookiejar(cj)
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)

br.open('https://*******/cgi-bin/wfos/order.exe')

# Select the login form named "login"
br.select_form(name="login")

# User credentials, this is usrname and passwords to submit to form
br.form['custno'] = '*******'
br.form['Password1'] = '*******'
br.form['Password2'] = '**********'

# Login, submits to the form
br.submit()

main()

現在、これをコンパイルするとエラーが発生します。

Traceback (most recent call last):
File "C:\EclipseWorkspaces\csse120\FOLDERNAME\src\main.py", line 9, in <module>
import mechanize
File "C:\Python32\lib\site-packages\mechanize\__init__.py", line 119, in <module>
from _version import __version__
ImportError: No module named _version

\site-packages\mechanize フォルダーを調べたところ、モジュール名 version.py が見つかりました。したがって、なぜこのエラーが発生するのかわかりません。

私が使用しているサイトは、新しいコンテンツを含むページをリロードします。ロードする順序を選択するボタンがあります。

 <FORM NAME="orders" METHOD="POST" ACTION="https://******/cgi-bin/wfos/order.exe">
 <input type="hidden" name="form" value="continue">
 <input type="hidden" name="cs_id" value="">
 <input type="hidden" name="customer_type" value="1">
 <input type="hidden" name="customer" value="******">
 <input type="hidden" name="custno" value="******">
 <input type="hidden" name="password1" value="******">
 <input type="hidden" name="password2" value="******">

上記はログインページからの投稿です。以下のものが出てきます

<tr bgcolor=D3D3D3><td align=center><input name=del23558 type=checkbox></td>
<td align=center><input name=continue value=E23558 type=submit></td>
<td align=center><font size=-1>Sep 29 2012  1:19PM</font></td>
<td align=right><font size=-1>$0.00</font></td>
<td align=right><font size=-1>0</font></td></tr>
</table><P>
<input name="action" type="submit" value="Cancel Checked Orders" 
onClick="return confirm('Are you sure you want to cancel the checked orders?')"><P>
<input name="action" type="submit" value="Start a New Order"><P>
</FORM>

注文を送信するには、次のようにしますか?:

 br.select_form(name="orders")
 br.form['continue'] = 'E23558'

あなたが提供できるどんな助けにも感謝します。

4

1 に答える 1

6

エラーメッセージから、 Python 3.2mechanizeでパッケージをインストールして実行しようとしています。

mechanizeただし、 Python 3はサポートしていないため、Python 2.xリリース (利用可能な最新版は2.7.5 ) をインストールし、mechanizeそこにパッケージをインストールしてから、スクリプトの実行を再試行してください。

于 2012-09-29T20:36:28.663 に答える