如果访问了某个站点,我创建了一些python代码来捕获屏幕截图。 当我从终端运行我的代码时,它运行正常并提供输出。当设置为cron作业或启动脚本时,它似乎不起作用。可能有什么不对?抱怨无法开始显示,但如何进行排序?代码如下。
#!/usr/bin/python2.7
import time
import subprocess
def get_current_status(netss):
netss = subprocess.check_output(“ss -rt”, shell=True)
if “facebook” in netss:
out_put = subprocess.check_output(‘import -window root “/home/user/test/new_$(date +%F-%N).png”‘, shell=True)
time.sleep(3)
elif “youtube” in netss:
out_put = subprocess.check_output(‘import -window root “/home/user/test/new_$(date +%F-%N).png”‘, shell=True)
else:
print(“Not yet time to capture”)
def main():
get_current_status(“netss”)
while True:
main()
time.sleep(10)
答案 0 :(得分:0)
我在python3中使用subprocess.getoutput并在python脚本中设置DISPLAY环境来整理它。您也可以将此python脚本作为cronjob运行。当我在“python的类和对象”中获取数据时,我开发了这个,请看下面的代码:
#!/usr/bin/env python3
import subprocess
import time
import pyscreenshot as ImageGrab
import os
if not 'DISPLAY' in os.environ:
os.environ['DISPLAY'] = ":0"
class NewCapture:
command = subprocess.getoutput("sudo ss -nt state established dst :443")
file_name = time.strftime("%Y-%m-%d-%H-%M-%S" +".png")
grab = ""
def funct_capture(self):
if ":443" in self.command:
self.grab = ImageGrab.grab_to_file("/home/user/test/%s" % self.file_name)
else:
pass
firstcommand = NewCapture()
firstcommand.funct_capture()