NEW

Selenium+PhantomJS+HeadlessChrome对比

Selenium+PhantomJS+HeadlessChrome对比
Headless Chrome 它是指在headless模式下运行谷歌浏览器。本质就是不用谷歌运行谷歌!它将由Chromium和Blink渲染引擎提供的所有现代网页平台的特征都转化成了命令行。phantomjs无人维护的情况下(Slobodin在Google论坛上发帖表示,鉴于Chrome 59推出了特性,他认为没有理由再继续维护Phantom.js。),headless chrome确实为一个更好的选择! Headless代码示例 from selenium import webdriver from seleni...

两个实用的 python 装饰器: timeout超时控制 和 trace单步追踪

两个实用的 python 装饰器: timeout超时控制 和 trace单步追踪
timeout超时控制 通过设置时钟信号给函数添加超时终端功能, 不适用于通过 os.system() 调用外部程序的情形. import signal import functools class TimeoutError(Exception): pass def timeout(seconds, error_message='Function call timed out'): def decorated(func): def _handle_timeout(signum, frame): raise TimeoutError(error_message) def wrapper(*args, *...

python高度健壮性的异常和超时问题

python高度健壮性的异常和超时问题
python高度健壮性的异常和超时问题 爬虫/Python这类型程序典型特征是意外多,无法确保每次请求都是稳定的返回统一的结果,要提高健壮性,能对错误数据or超时or程序死锁等都能进行处理,才能确保程序几个月不停止。 一、基础try&except异常处理 try&except的语句作用不仅仅是要让其捕获异常更重要的是让其忽略异常,因为爬虫中的绝大多数异常可能重新请求就不存在,因此,发现异常的时候将其任务队...

后台运行python程序(gui and not gui)

后台运行python程序(gui and not gui)
后台运行python程序(gui and not gui) 依赖说明: xvfb:虚拟设备,即一个虚拟的X服务器环境 [主要适用于Run Gui program on Server OS] pyvirtualdisplay:a python wrapper for Xvfb, Xephyr and Xvnc 依赖安装: sudo apt-get install xvfb pip install pyvirtualdisplay 示例代码: #!/usr/bin/env python from pyvirtualdisplay import Display from selenium import webdriver display =...

Selenium+PhantomJS(系列八:CSS选择器)

Selenium+PhantomJS(系列八:CSS选择器)
Selenium+PhantomJS(系列八:CSS选择器)   PhantomJS主要是通过JavaScript和CoffeeScript控制WebKit的CSS选择器、可缩放矢量图形SVG和HTTP网络等各个模块。   我们可以利用CSS选择器进行一些复杂的值选取操作。   querySelector示例一:   var content = page.evaluate(function () { var element = document.querySelector('#elem'); return element.textContent; }); cons...

Selenium+PhantomJS(系列七:OCR的优化技巧)

Selenium+PhantomJS(系列七:OCR的优化技巧)
Selenium+PhantomJS(系列七:OCR的优化技巧) Phantomjs可以选择元素区域截图,然后可以利用OCR做验证码识别,或做一些图形图像分析,等等。OCR引擎推荐tesseract。中文识别库下载:https://codeload.github.com/tesseract-ocr/tessdata/zip/master,另外tesseract支持字库训练,可以方便的训练出适合某种场景的识别库出来。这里简单说下OCR的优化。 优化技巧一: 1、网页按照比例放大后,再截图: driver...

Selenium+PhantomJS(系列六:元素区域截图,OCR)

Selenium+PhantomJS(系列六:元素区域截图,OCR)
Selenium+PhantomJS系列教程: Selenium+PhantomJS(系列一:设置User-Agent) Selenium+PhantomJS(系列二:模拟登录淘宝) Selenium+PhantomJS(系列三:模拟登录知乎) Selenium+PhantomJS(系列四:模拟登录微博) Selenium+PhantomJS(系列五:selenium的等待) Selenium+PhantomJS(系列六:元素区域截图,OCR) Selenium+PhantomJS(系列六:元素区域截图,OCR),针对元素区域截图,然后可以利用...

pymongo 基本使用

pymongo 基本使用
pymongo 是在 python 中操作 mongodb 的一个包,使用方法跟 mongodb 的 shell 命令行类似。本文使用的 pymongo 版本是 3.2.1。 连接数据库 # -*- coding: utf-8 -*- # pymongo 版本 3.2.1 import re from pymongo import MongoClient from bson.objectid import ObjectId def con_mongo(): """连接数据库""" # 建立连接 client = MongoClient(host='127.0.0.1', port=27017) retu...

Selenium+PhantomJS(系列五:selenium的等待)

Selenium+PhantomJS(系列五:selenium的等待)
Selenium+PhantomJS系列教程: Selenium+PhantomJS(系列一:设置User-Agent) Selenium+PhantomJS(系列二:模拟登录淘宝) Selenium+PhantomJS(系列三:模拟登录知乎) Selenium+PhantomJS(系列四:模拟登录微博) Selenium+PhantomJS(系列五:selenium的等待) Selenium+PhantomJS(系列五:selenium的等待) 1、强制等待time.sleep(),最简单粗暴的方法就是强制等待sleep(xx)。 2、隐式等待implic...

Selenium+PhantomJS(系列四:模拟登录微博)

Selenium+PhantomJS(系列四:模拟登录微博)
Selenium+PhantomJS系列教程: Selenium+PhantomJS(系列一:设置User-Agent) Selenium+PhantomJS(系列二:模拟登录淘宝) Selenium+PhantomJS(系列三:模拟登录知乎) Selenium+PhantomJS(系列四:模拟登录微博) Selenium+PhantomJS(系列五:selenium的等待) Selenium+PhantomJS(系列四:模拟登录微博) 引入selenium package, 建立webdriver对象 from selenium import webdriver sel = sele...
Copyright © C/C++程序员之家 保留所有权利.   Theme  Ality 浙ICP备15011757号-3

用户登录