Возможно, простое исправление относительно subprocesses
, но я не могу понять, что происходит.Подпроцесс Python - tcpdump висит
У меня есть небольшой список веб-страниц, для которых я хочу захватить пакет. Я хочу один файл pcap
на веб-страницу. Я использую tcpdump
и phantomJS
. Вот соответствующая часть кода:
from selenium import webdriver
..more imports here..
URLs = ['https://webpage1.com', 'https://webpage2.com', etc.]
driver = webdriver.PhantomJS(executable_path='/usr/bin/phantomjs', port=65000)
driver.set_window_size(1024, 768)
def Crawler():
for eachHost in URLs:
print '\n* Capturing in-progress.'
print '* Host: ', eachHost
try:
handle = subprocess.Popen(['sudo', 'tcpdump', '-w', str(eachHost) + '.pcap'], stdout=subprocess.PIPE)
driver.get(eachHost)
time.sleep(5)
driver.close()
time.sleep(2)
handle.terminate()
print '* tcpdump killed.'
except:
print '* Exception caught.'
sys.exit(0)
sys.exit(0)
Что я ожидаю, что это сделать: захватить первые 5 секунд каждой загрузке страницы и положить в отдельные pcaps
Что она делает: печатает ниже в моем терминале, а затем зависает, захватывая, но не заканчивая, а не на велосипеде на следующую веб-страницу.
Host: https://www.webpage1.com/
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
Вы хотите понюхать интерфейс '' eth0'' или '' loopback''? Если ваш веб-сервер находится в loopback, укажите интерфейс с помощью '' -i lo''. –
Привет, я запускаю этот скрипт с виртуальной машины ubuntu на EC2, не уверен, что это отвечает на ваш вопрос. – jaydh