pywikipedia login.py soket.error: (10060, 'operação cronometrada')
Pergunta
Eu sou totalmente novo no Python, então espero que alguém possa ajudar se eu estiver fazendo algo obviamente errado. Estou tentando criar e executar um bot simples Pywikipedia no vocabularies.Referata.com, um site semântico de mediawiki. Baixei o Pywikipedia Distro e criei um arquivo de família:
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
}
Eu criei um usuário, Wikibot e execute:
python generate_user_files.py
Conforme as instruções sobre:
http://meta.wikimedia.org/wiki/Using_the_python_wikipediabot
Quando tento correr:
python login.py
Estou recebendo o seguinte erro:
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')
O algo deles é estúpido/aparente que eu preciso verificar ou estou fazendo de errado? Estou atrás de um firewall, esse seria o problema? (E se sim, quais etapas eu preciso tomar para corrigi -lo).
Obrigado por qualquer ajuda Stuart
Solução
Não estou familiarizado com pywikipedia = p, mas o problema é pelo menos sobre conexão e não python: a conexão do soquete não é estabelecida no início.
- É o post url,
address
no login.py l178, correto? Algum erro de digitação ou equívoco? - O URL é acessível? Você pode tentar visitar diretamente o URL no navegador e ver se há alguma resposta HTTP. Se o servidor estiver acessível, você pode verificar se está ouvindo em certa porta como 80, por
netstat -ant
,netstat -anptcp
ou similar. No Windows, um firewall com configurações padrão pode bloquear a comunicação, você pode ver se há alguma caixa de diálogo de aviso aguardando a confirmação ou verificar o log do Fireware. Além disso, você precisa ter privilégio de administrador para usar a porta 80.
Outras dicas
Funciona para mim, desculpe. Acabei de criar uma conta e usei seu arquivo de família. Parece estar do seu lado.
$ 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
Você pode tentar o mesmo, com opções -v -v para que eu possa ajudá -lo a depurar esse problema? Por favor, comente de volta para que eu possa obter suas atualizações.