У меня паук Scrapy работает несколько дней. Обычно я пытаюсь проверить статистику, сколько элементов он собрал и так далее. Я просто запускаю следующие команды в терминале, и это дает мне статистику.
$ telnet [IP] [PORT]
>>> spider.name
alf-spider
>>> stats.get_stats()
...
Теперь я хочу сделать это с помощью Python, используя telnetlib, но я не могу добиться вышеуказанных результатов. Ниже приведен мой код Python.
#!/usr/bin/env python
import sys
import getpass
import telnetlib
HOST = "192.168.1.5"
def main():
ports = ['6023']
if len(sys.argv) > 1:
ports = sys.argv[1].split(',')
for port in ports:
get_stats(port)
def get_stats(port):
tn = telnetlib.Telnet(HOST, port)
tn.write("spider.name\n")
print tn.read_all()
if __name__ == '__main__':
main()
Приведенный выше код, если он запущен, просто зависает до принудительного закрытия. Что мне не хватает?
Telnet.read_all() Read all data until EOF; block until connection closed.
- person Ofir Israel   schedule 31.08.2013"spider.name\r\n"
- person Ofir Israel   schedule 31.08.2013wireshark
? Вы можете понюхать и посмотреть, в чем разница между способом python и способом cmd? - person Ofir Israel   schedule 31.08.2013