我拼凑了以下脚本,以在远程Asterisk / Vicidial服务器上生成每日报告.该脚本从报告中获取源代码,执行某种格式设置,将结果保存为文本文件,然后通过smtp发送给我的老板以供审核.我目前正在本地的cron作业上运行脚本,并且脚本运行良好,但是我希望能够在VPS上运行该脚本;问题是,该脚本会弹出Firefox窗口,并且VPS没有X或任何类型的GUI,因此Firefox无法打开,并且无法检索数据.

需要澄清的是,我已经安装了Firefox和所有必需的模块,并且VPS本质上与我的本地计算机(bar X和GUI(Debian Lenny))相同.

如果有人可以提供有关如何修改此脚本的任何帮助,以使其在没有X / GUI的情况下工作,将不胜感激!

谢谢,托比.

import contextlib

import selenium.webdriver as webdriver

import lxml.html as LH

import lxml.html.clean as clean

import csv

import sys

import smtplib

from email.mime.text import MIMEText

import email.mime.application

import email

import mimetypes

import datetime

date=datetime.date.today()

url="http://myuser:mypass@ipaddress"+ str(date) + "some_other_string"

ignore_tags=('script','noscript','style')

with contextlib.closing(webdriver.Firefox()) as browser:

browser.get(url)

content=browser.page_source

cleaner=clean.Cleaner()

content=cleaner.clean_html(content)

with open('vicidial_data.html','w') as f:

f.write(content.encode('utf-8'))

doc=LH.fromstring(content)

with open('grab_raw.txt','w') as f:

for elt in doc.iterdescendants():

if elt.tag in ignore_tags: continue

text=elt.text or ''

tail=elt.tail or ''

words=' '.join((text,tail)).strip()

if words:

words=words.encode('utf-8')

f.write(words+'

')

grab=open( 'grab_raw.txt', 'r' )

grab_list=grab.readlines()

grab.close()

del grab_list[0:21]

grab_out=open("Vicidial_Report-"+str(date)+".txt", 'w')

grab_out.writelines(grab_list)

grab_out.close()

msg=email.mime.Multipart.MIMEMultipart()

msg['Subject']='Vicidial call-report'

msg['From']='me@mycomapny.com'

msg['To']='myboss@mycompany.com'

body = email.mime.Text.MIMEText("Please find attached call-report for " + str(date))

msg.attach(body)

filename= "Vicidial_Report-"+str(date)+".txt"

fp=open(filename,'rb')

att = email.mime.application.MIMEApplication(fp.read(),_subtype="text")

fp.close()

att.add_header('Content-Disposition','attachment',filename=filename)

msg.attach(att)

s = smtplib.SMTP('smtp.gmail.com')

s.starttls()

s.login('mygmaillogin@mycompanydomain.com','mypassword')

s.sendmail('me@mycompanydomain.com',['myboss@mycompanydomain.com', 'someoneelse@mycompanydomain.com', ], msg.as_string())

s.quit()

python selenium webdriver_Python:selenium.webdriver问题(服务器上没有X)相关推荐

  1. 通过python建立一个web服务查看服务器上的文本、图片、视频等文件

    通过python建立一个web服务查看服务器上的文本.图片.视频等文件 文章目录: 1 在服务器端开启一个服务 2 在本地浏览器中输入服务器的ip地址 1 在服务器端开启一个服务 python -m ...

  2. 服务器跑python程序_远程编写+调试服务器上的Python程序

    原帖参见(需自备梯子):https://webcache.googleusercontent.com/search?q=cache:1htdR2EXj5wJ:https://www.digitaloc ...

  3. python连接linux服务器读取txt文件_python 读取Linux服务器上的文件方法

    使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现: 下载包:paramiko import paramiko #服务器信息,主机名(IP地址).端口号.用户名及密码 hos ...

  4. ubuntu18.04安装python3_如何在Ubuntu 18.04服务器上安装Python 3和设置编程环境

    一,介绍 Python是一种灵活且通用的编程语言,可在许多用例中利用,在脚本,自动化,数据分析,机器学习和后端开发方面具有优势.开发团队于1991年首次发布,其名称受到英国喜剧团体Monty Pyth ...

  5. 在使用反向代理访问的服务器上配置远程jupyterNotebook

    在使用反向代理访问的服务器上配置远程jupyterNotebook 使用场景 配置流程 简化的访问方式 使用场景 自己的电脑没有GPU或者配置较低,想要使用远程的linux服务器进行深度学习,而且需要 ...

  6. linux服务器上import joblib报错 ImportError: No module named joblib

    目录 1.报错场景 2.解决办法 1.报错场景 我在windows上训练了一个机器学习模型,用joblib保存后上传到服务器上.在服务器上运行python脚本报错:ImportError: No mo ...

  7. Linux服务器上搭建Python+Selenium+Chrome的运行环境(静默模式、无图形)

    本文是<统计CSDN博客的访问量>的部署篇,为了持续统计CSDN的访问量.并进行分析,因此需要在Linux上搭建Selenium + Chrome driver的运行环境 安装Seleni ...

  8. Python+Selenium 自动化测试 2. Webdriver API介绍

    目录 一 Webdriver介绍 二 webdriver实现的原理 三  API介绍 Webdriver 元素的查找的八种方式 find_element_by_id()  源码 find_elemen ...

  9. 服务器上运行Selenium

    有些时候,我们写点爬虫或者写点自动化脚本不能一直占据着某台电脑,那样太浪费资源了,所以将其部署到服务器上默默的在后台运行是一个不错的选择. 普通的python爬虫部署太过简单,这里就总结一下怎么部署s ...

最新文章

  1. 哈希表处理冲突的方法
  2. Python使用matplotlib可视化分布点图、自定义设置分布点图的中位数数据点的颜色(Distributed Dot Plot)
  3. 程序猿老公去米国参加 WWDC,顺便想带渡老婆蜜月,如何办签证?
  4. 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
  5. Qt Dock Widgets 官方示例的翻译
  6. HttpContext HttpRuntime
  7. JS学习笔记6-JavaScript 数据类型
  8. centos7源码安装mysql8.0_CentOS7下源码安装MySQL 8.x
  9. 【推荐实践】内容分发场景的多目标架构实践
  10. 创业者创业之前,应该思考如下这些问题
  11. 数据分析如何揭示冠状病毒的真相?
  12. SDOI 2016 游戏
  13. 如何用大数据开发套件周期调度机器学习算法
  14. linux 安装 yum
  15. BP神经网络(Python代码实现)基于pytorch
  16. Goole Tag Manager 介绍
  17. 精读FREE: Feature Refinement for Generalized Zero-Shot Learning
  18. 计算机网络技术包含哪些方面,计算机网络包括哪些内容
  19. 计算机数学课程标准,小学数学课程标准解读
  20. 我的“天气宝”上线啦

热门文章

  1. FIR数字滤波器设计_窗函数法
  2. 转换到 COFF 期间失败: 文件无效或损坏
  3. [OS复习]进程管理3
  4. 基于光学导航系统,矩阵变换和3D-2D配准研究
  5. Delphi动态数组详解
  6. 为服务器端控件添加js.net
  7. tldr一个精简的man手册替代品
  8. Java中的全局变量和局部变量——简单区别
  9. STM32F4 HAL库开发 -- 串口
  10. 【译】Android中的安全数据— Android中的加密(第1部分)