【发布时间】:2015-07-07 15:35:15
【问题描述】:
可能是关于 subprocesses 的简单修复,但我无法弄清楚出了什么问题。
我有一小部分要对其进行数据包捕获的网页。我想要每个网页一个 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接口?如果您的网络服务器在环回上,则使用-i lo指定接口。 -
嗨,我在 EC2 上的虚拟 ubuntu 机器上运行这个脚本,不确定这是否能回答你的问题
标签: python macos subprocess popen tcpdump