0

さて、Mechanize を使用して Google グループにログインし、メンバーを手動でグループに追加します。

正常にログインして、適切なページに移動できました。このページには、グループに手動で追加する電子メール アドレスを追加できるテキストエリア ボックスがあります。

テキストエリアの html は次のとおりです。

<textarea class="gwt-TextArea GFBTXDWBA-" id="gwt-uid-224" aria-haspopup="false" dir="" role="combobox" aria-autocomplete="list" aria-activedescendant=""></textarea>

ループを実行すると:

for form in br.forms():
print form

返される唯一のフォームは上部にある「メンバーの検索」フォームで、テキスト領域は表示されません。

実際にはフォームではないので、 select_form が機能するとは思いません。画面の左上に、テキストエリアからの入力を送信する「追加」ボタンがあります。「追加」ボタンの HTML は次のとおりです。

<input type="text" tabindex="-1" role="presentation" style="opacity: 0; height: 1px; width: 1px; z-index: -1; overflow: hidden; position: absolute;">

がやろうとしているのは、テキストエリアに電子メールアドレスを追加して送信することです。どんな助けでも歓迎です。

ここに私の完全なコードがあります:

import mechanize
import cookielib

br = mechanize.Browser()

cj = cookielib.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.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

r = br.open('https://accounts.google.com/ServiceLogin?continue=https%3A%2F%2Fgroups.google.com%2Fd%2Fmanagemembers%2Ftesttgroup123456%2Fadd&hl=en&service=groups2&passive=true')
html = r.read()

br.select_form(nr=0)

br.form['Email']='myUsername'
br.form['Passwd']='myPassword'
br.submit()

for form in br.forms():
    print form
4

1 に答える 1

0

これに対するより良いアプローチは、Google の Provisioning API を使用することです。

https://developers.google.com/google-apps/provisioning/

于 2012-12-12T03:39:41.017 に答える