0

インターネットにアクセスするための Web ベースのログインを備えた Reliance Broadband を使用しています。24 時間ごとにログオフされるため、再度サインインする必要があります。

接続をチェックし続け、接続を維持するPYTHON scriptに出会いました。

どういうわけか、最新の Python バージョンをインストールした後に Windows で実行すると、次の構文エラーが発生します。

C:\Documents and Settings\CS\Desktop>reliance-login.py

  File "C:\Documents and Settings\CS\Desktop\reliance-login.py", line 48
    if debug: print "Testing"
                            ^
SyntaxError: invalid syntax

誰でも確認して、正確に何が問題なのか教えてもらえますか?

=====

sr2222 に感謝します。すべての + n - を削除した後、2to3 を試しました ... まだエラーが発生しています。

以下は 2to3 後のスクリプトです。お使いのマシンで実行して、エラーを修正してください。

            #!/usr/bin/env python
            # encoding: utf-8
            """
            # Reliance Login Script for Python 2.x v1.0
            #
            # Copyright (c) 2009 Kunal Dua, http://www.kunaldua.com/blog/?p=330
            # Copyright (c) 2012 Anoop John, http://www.zyxware.com
            #
            # This program is free software; you can redistribute it and/or modify
            # it under the terms of the GNU General Public License as published by
            # the Free Software Foundation; version 2 of the License.
            #
            # This program is distributed in the hope that it will be useful,
            # but WITHOUT ANY WARRANTY; without even the implied warranty of
            # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
            # GNU General Public License for more details.
            """

            import urllib.request, urllib.error, urllib.parse, urllib, http.cookiejar, time, re, sys

            username = 'username'
            password = 'password'
                 req_headers = {
                     'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; U; ru; rv:5.0.1.6) Gecko/20110501 Firefox/5.0.1 Firefox/5.0.1'
                 }
            request = urllib.request.Request(url, headers=req_headers)
                 if not opener:
                    jar = http.cookiejar.FileCookieJar("cookies")
                    opener = urllib.request.build_opener(urllib2.HTTPCookieProcessor(jar))
                 response = opener.open(request, data)
                 code = response.code
                 headers = response.headers

             def is_internet_on():
                 '''test if the machine is connected to the internet'''
                if debug: print("Testing")
                 try:
                     code, headers, html, opener = get_url('http://74.125.113.99', timeout=10)
                    if debug: print(html)
                     if re.search('google.com', html):
                         return True
                     else:
                         return False
                 except:
                    if debug: print("Error")
                     return False
                 return False

             def internet_connect():
                 '''try to connect to the internet'''
                 code, headers, html, cur_opener = get_url("http://10.239.89.15/reliance/startportal_isg.do", timeout=10)
                if debug: print(html)
                login_data = urllib.parse.urlencode({'userId' : username, 'password' : password, 'action' : 'doLoginSubmit'})
                 code, headers, html, cur_opener = get_url('http://10.239.89.15/reliance/login.do', data=login_data, opener=cur_opener)
                if debug: print(html)

             def internet_disconnect():
                 '''try to disconnect from the internet'''
                 code, headers, html, cur_opener = get_url('http://10.239.89.15/reliance/login.do', timeout=10)
                if debug: print(html)
                 code, headers, html, cur_opener = get_url('http://10.239.89.15/reliance/logout.do', opener=cur_opener)
                if debug: print(html)

             def internet_keep_alive():
                 '''login and keep the connection live'''
                 while True:
                     if not is_internet_on():
                         internet_connect()
                        if debug: print("Not connected")
                     else:
                        if debug: print("Connected")
                         pass
                     time.sleep(check_interval)

             def print_usage():
                print("Reliance Netconnect AutoLogin")
                print("-----------------------------")
                print("usage:" + sys.argv[0] + " [login|logout]\n")
                print("If there are no arguments it runs in an infinite loop and will try to remain connected to the internet.")

             keep_alive = True
             if (len(sys.argv) > 1): 
4

1 に答える 1

0

Python 2 または Python 3 をダウンロードしましたか? これは Python 2.X の印刷構文です。Python 3 インタープリターを使用している場合は、そのエラーが表示されます。そのスクリプトはおそらく Python 2.X で書かれています。別のインタープリターをダウンロードするか、stay-alive スクリプトのソースで 2to3.py スクリプトを実行して、Python 3 で動作させることができます。

また、うわー、まだそれをしている ISP がありますか? 申し訳ありませんが、それで立ち往生しています。

于 2012-08-02T10:56:56.443 に答える