0

私はPythonがまったく初めてなので、明らかに間違ったことをしている場合は誰かが助けてくれることを願っています. セマンティック メディアウィキ サイトである vocabularies.referata.com で単純な pywikipedia ボットを作成して実行しようとしています。pywikipedia ディストリビューションをダウンロードし、ファミリ ファイルを作成しました。

import config, family, urllib         # REQUIRED

class Family(family.Family):          # REQUIRED
    def __init__(self):               # REQUIRED
        family.Family.__init__(self)  # REQUIRED
        self.name = 'explicator'        # REQUIRED; replace with actual name

        self.langs = {                # REQUIRED
            'en': 'vocabularies.referata.com',  # Include one line for each wiki in family
        }

ユーザー、wikibot を作成し、以下を実行しました。

python generate_user_files.py

指示に従って:

http://meta.wikimedia.org/wiki/Using_the_python_wikipediabot

実行しようとすると:

python login.py

次のエラーが表示されます。

C:\pywikipedia>python login.py
Password for user wikibot on explicator:en:
Logging in to explicator:en as wikibot
Traceback (most recent call last):
  File "login.py", line 376, in <module>
    main()
  File "login.py", line 372, in main
    loginMan.login()
  File "login.py", line 261, in login
    cookiedata = self.getCookie(api)
  File "login.py", line 178, in getCookie
    response, data = self.site.postData(address, self.site.urlEncode(predata))
  File "C:\pywikipedia\wikipedia.py", line 4915, in postData
    conn.endheaders()
  File "C:\Python25\lib\httplib.py", line 860, in endheaders
    self._send_output()
  File "C:\Python25\lib\httplib.py", line 732, in _send_output
    self.send(msg)
  File "C:\Python25\lib\httplib.py", line 699, in send
    self.connect()
  File "C:\Python25\lib\httplib.py", line 683, in connect
    raise socket.error, msg
socket.error: (10060, 'Operation timed out')

私がチェックする必要がある、または間違っていることは、彼らの愚かな/明白なものですか? 私はファイアウォールの内側にいますが、これは問題でしょうか? (もしそうなら、それを修正するためにどのような手順を踏む必要がありますか)。

助けてくれてありがとうスチュアート

4

2 に答える 2

0

申し訳ありませんが、私のために動作します。アカウントを作成し、家族のファイルを使用しました。それはあなたの味方のようです。

$ python login.py -v -v -family:explicator -lang:en
Pywikipediabot [http] trunk/pywikipedia (r6858, May 08 2009, 15:23:29)
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) 
[GCC 4.3.3]
WARNING: Using -v -v on login.py might leak private data. When sharing, please double check your password is not readable and log out your bots session.
Password for user NicDumZ on explicator:en: 
Logging in to explicator:en as NicDumZ
self.site.postData(/w/index.php?title=Special:Userlogin&useskin=monobook&action=submit, wpSkipCookieCheck=1&wpPassword=XXXXX&wpDomain=&wpRemember=1&wpLoginattempt=Aanmelden%20%26%20Inschrijven&wpName=NicDumZ)
302/Found
Date: Thu, 03 Sep 2009 19:46:47 GMT
Server: Apache
Cache-Control: private, must-revalidate, max-age=0
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie: referata_session=XXXXXXXXXXdab8c53151d27046d68473; path=/; HttpOnly
Set-Cookie: referataUserID=4; expires=Sat, 03-Oct-2009 19:46:48 GMT; path=/; httponly
Set-Cookie: referataUserName=NicDumZ; expires=Sat, 03-Oct-2009 19:46:48 GMT; path=/; httponly
Set-Cookie: referatasession=XXXXXXXXXX270504613b1d26dfef82e6; expires=Sat, 03-Oct-2009 19:46:48 GMT; path=/; httponly
Vary: Accept-Encoding,Cookie
X-Vary-Options: Accept-Encoding;list-contains=gzip,Cookie;string-contains=referataToken;string-contains=referataLoggedOut;string-contains=referata_session
Location: http://vocabularies.referata.com/wiki/Main_Page
Content-Encoding: gzip
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8


Should be logged in now

-v -vオプションを使用して同じことを試して、その問題のデバッグを支援できますか?最新情報を入手できるよう、コメントしてください。

于 2009-09-03T19:49:58.557 に答える
0

私はpywikipedia = pに慣れていませんが、問題は少なくともpythonではなく接続に関するものです.ソケット接続は最初に確立できません。

  • addresslogin.py L178の投稿 URL は正しいですか? 入力ミスや設定ミスはありませんか?
  • URLはアクセス可能ですか?ブラウザで URL に直接アクセスして、http 応答があるかどうかを確認してみてください。サーバーに到達できる場合は、80、by などの特定のポートでリッスンしているかどうかを確認できnetstat -antますnetstat -anptcp。Windows では、デフォルト設定のファイアウォールが通信をブロックする場合があります。確認を待っている警告ダイアログがあるかどうかを確認するか、ファイアウェア ログを確認してください。また、ポート 80 を使用するには管理者権限が必要です。
于 2009-09-02T17:23:52.407 に答える