`
lizhiyu211
  • 浏览: 230450 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python selenium抓取页面截图+连接oracle数据库

 
阅读更多

最近有需求抓取自己系统页面截图并作为邮件正文发送,经评估 发现python做这事儿最适合不过:

      抓图依赖 python脚本+FIREFOX

      准备:

             1.数据库建立抓取配置表,存页面访问路径、文件存储路径

              2.安装所需的 py包 :seleniu的安装网上很多教程;下载对应的数据库驱动

  代码实现如下:

 

软件版本:Firefox47  cx-Oracle (5.2.1)    selenium (2.53.6)

 

 

 

# -*- coding: utf-8 -*-
# author lzy

from selenium import webdriver
import time,datetime
import cx_Oracle
 
def capture(url, pdir):
  browser = webdriver.Firefox() # Get local session of firefox
  browser.set_window_size(600, 900)
  browser.get(url) # Load page
  
  browser.execute_script("""
    (function () {
      var y = 0;
      var step = 100;
      window.scroll(0, 0);
 
      function f() {
        if (y < document.body.scrollHeight) {
          y += step;
          window.scroll(0, y);
          setTimeout(f, 50);
        } else {
          window.scroll(0, 0);
          document.title += "scroll-done";
        }
      }
 
      setTimeout(f, 1000);
    })();
  """)
 
  for i in xrange(30):
    if "scroll-done" in browser.title:
      break
    time.sleep(1)
  
  vdt = (datetime.datetime.now() - datetime.timedelta(days = 1)).strftime("%Y%m%d") 
  browser.save_screenshot('D:/mywork/image/%s/screenShots_%s.png'%(pdir,vdt))
  browser.close()
 
 
if __name__ == "__main__":
  conn = cx_Oracle.connect('username','password','tnsname')
  cursor=conn.cursor(); 
  sql='select f_sendurl,f_reportname from table where f_deflag = 0'
  cursor.execute(sql)
  rows =cursor.fetchall()
  for row in rows:
    capture(row[0],row[1])
  cursor.close()
  conn.close()

 

分享到:
评论

相关推荐

    python爬虫开发工程师个人简历模板(Word可以直接使用).docx

    - **SQL数据库**: 熟练使用关系型数据库MySQL或Oracle进行数据管理和查询。 - **NoSQL数据库**: 了解非关系型数据库Redis和MongoDB的特点及应用场景。 #### 爬虫技术 - **Requests/Scrapy/Selenium**: 掌握Requests...

    爬虫基本原理基础知识点.pdf

    可以是纯文本、JSON、XML等文本格式,也可以存储到非关系型数据库(如MongoDB、Redis)的键值对形式,或者保存为二进制文件(如图片、视频)到本地,还可以将数据存储到关系型数据库(如MySQL、Oracle、SQL Server)...

    Appium windows安装文件

    2. 编写Python脚本:创建一个新的Python文件,导入`appium`库,然后实例化一个Appium客户端,连接到本地Appium服务器。例如: ```python from appium import webdriver desired_caps = {} desired_caps['...

    电信设备-Web信息采集系统.zip

    关系型数据库如MySQL、Oracle,或非关系型数据库如MongoDB、HBase等,可以提供高效、可扩展的数据存储解决方案。数据模型设计和索引优化对查询性能至关重要。 5. **并发与分布式爬虫**:为了提高采集效率,系统可能...

    Java爬虫详细完整源码实例

    9. **数据持久化**:爬取到的数据可能需要存储在文件系统或数据库中,Java提供了JDBC接口用于与各种数据库交互,如MySQL、Oracle等。此外,NoSQL数据库如MongoDB也是存储非结构化数据的好选择。 10. **遵守网络道德...

Global site tag (gtag.js) - Google Analytics