У меня есть паук для пауков в течение нескольких дней. Обычно я стараюсь проверять статистику как количество элементов, которые она соскабливает, и так далее. Я просто запускаю следующие cmds в терминале, и это дает мне статистику.Python telnetlib для подключения к Scrapy Telnet для чтения статистики
$ 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()
Выше кода, если он бежал, просто зависает, пока сила не закрыта. Что мне не хватает?
Вы пробовали отладить этот код? Добавление распечаток, чтобы вы могли понять, где этот код висит? –
Да. tn.read_all() никогда не возвращается. –
ОК, может быть, это дает нам ключ? 'Telnet.read_all() Читать все данные до EOF; блок, пока соединение не будет закрыто. ' –