开发

python的浏览器“驱动”库:selenium

上两周的时候,陈怡同学问我怎么通过程序自动化截屏浏览器页面,她说有篇论文用的是python与selenium。当时我的心理活动是这样的:“卧槽selenium是什么鬼,女博士果然是见多识广。” =。=# 然后查了一下,selenium大概可以理解成一个浏览器模拟器(或者实际上是浏览器驱动器,Selenium WebDriver),selenium提供多种编程语言的接口让我们可以通过程序来驱动本地浏览器,并执行我们想要的操作。 以陈怡同学的需求为例,就是通过python调用selenium接口来驱动我的Firefox,打开xx网站,截图保存。 我的环境: python 2.7.6,selenium 2.48.0 安装selenium库: 参考https://pypi.python.org/pypi/selenium #从selenium库引入webdriver类 from selenium import webdriver #新建一个browser对象(驱动firefox浏览器) browser = webdriver.Firefox() […]

小蝌蚪聊天室

1. 新建项目 创建如下目录与文件: game-server是我们“游戏”的后端服务器目录,负责处理用户的登陆、聊天等相关逻辑。web-server是我们网站的服务器目录。 { "name": "pomelo-todpole-chat", "version": "0.0.1", "private": false, "dependencies": { "pomelo": "1.1.6" } } { "name": "pomelo-todpole-chat",

pomelo start命令的背后-pomelo源码分析(1)

首先,$which pomelo发现全局的pomelo命令指向的是/usr/local/bin/pomelo文件,该文件是/usr/local/lib/node_modules/pomelo/bin/pomelo文件的软链接,直接查看该文件的内容,我们发现这个pomelo其实就是一个js文件。而且头一行为: ,这句话表示告诉系统,我们要调用node进程来执行pomelo这个js脚本文件。$pomelo start = $node /usr/local/bin/pomelo;$pomelo start -D = $node /usr/local/bin/pomelo start -D。 再往下看,有这么一段代码: program.command('start') .description('start the application') .option('-e,

Node.js入门

什么是Node.js 简单来说,Node.js是一个服务器端的javascript运行时环境,使得我们可以在服务器端运行javascript代码。 至于安装Node.js,Node.js官网有已编译的二进制文件,也有源文件包。我自己是下载源文件重新编译安装的。 Hello,World 方法一:直接执行无参数的node命令,进入node命令行界面,打印Hello, World。 方法二:执行node hello.js命令,调用写好的javacript脚本。 console.log('Hello, World'); 一个基本的Web Server 这是nodejs.org的一个官方例子,使用Node.js建立一个web服务器。打开编辑器,建立一个名为app.js的文件,内容如下: var http = require('http'); http.createServer(function (req, res)

javascript的面向对象

1. 原始类型和对象类型 javascript的数据类型分为两类,原始类型(primitive type)和对象类型(object type)。原始类型包括javascript已定义的数值、字符串、布尔值。对象类型包括用户定义的对象以及函数(对,函数在javascript中其实也是一种对象)。原始类型的赋值是传值赋值,对象类型的赋值是引用赋值。在下面的例子可以看出来。 var n = 10; var m = n; // 传值赋值,m的值等于n m = 13; console.log('n =

php生成静态html文件

php生成静态html文件,主要用在某些并不需要实时更新,且访问量大的页面,比如说门户的首页。顾名思义,就是当首次访问时候,php生成一个静态html页面,同时该页面有一个“有效时间”,在有效时间内所有的访问都直接返回该html页面,而不需要每次访问都重新生成页面。当过了有效时间后,重新生成一次静态html页面即可。从而节省系统开销。 (当然,这个静态html文件内部还可以通过ajax实时更新数据。) 如下所示: 用户访问output.php页面,后台首先查看是否存在有效的output.html, 若存在,直接返回该html文件; 若不存在,php重新处理数据输出给用户,同时生成一个新的html文件留待之后的访问。 if (is_file('output.html') && (time() – filemtime('output.html')) < 300) { // 如果静态页面存在且仍在有效时间内(这里设为5分钟),直接输出该静态文件 require_once('output.html'); } else

nginx为网页开启gzip压缩

今天准备写汤圆网的app后台接口时,观摩了一下api.huaban.com的返回。发现人家的http响应头中有个值: Content-Encoding:”gzip” 看起来略屌对不对,我才知道原来http响应可以在先服务器端进行gzip压缩,然后传输,最后由浏览器自动解压!这样既能加速传输效率、又降低带宽占用。对于我这种带宽渣渣的小个体户,简直就是天降福音。 (sorry,以上都是废话) nginx关于gzip压缩模块的官方配置文档:http://nginx.org/en/docs/http/ngx_http_gzip_module.html   1. 打开nginx的配置文件 nginx.conf   2. 在http花括号里可以看到gzip功能被注释掉了: #gzip  on;   3. 取消注释,开启gzip压缩,并添加如下配置: gzip on; gzip_comp_level

在swift项目中使用AFNetworking网络库

关于AFNetworking的介绍就不多说了,这是一个时下比较流行的ios和mac os网络库,不过遗憾的现在只有objective-c版本。 1. 安装CocoaPods $ sudo gem install cocoapods 安装过程比较慢,你可以用$ sudo gem install cocoapods -V来观察后台的执行过程。 另外,由于GFW的原因,RubyGems资料源可能被墙,可以将gem的源换成淘宝的RubyGems镜像。   2. 编辑Podfile 在项目目录下添加podfile文件,编辑内容:

为php安装imagick拓展与image magick图像处理库

php是通过imagick拓展来引用image magick这个图像处理库的。所以在安装时其实是安装两个软件包,一个是image magick,一个是imagick。 1 Windows安装 1. 下载 php_imagick 拓展的安装包。php_imagick-3.2.0b2-5.5-nts-vc11-x64.zip 2. 将该压缩包解压,得到这些dll文件。 将php_imagick.dll复制到php安装目录的ext目录下。 然后修改php_xx.ini,在那些拓展下面加一句extension=php_imagick.dll。 剩下的的CORE_XX.dll则拷贝到windows/system32目录下。 3. 查看phpinfo(), 应该能看到imagick拓展了。 但最后两项ImageMagick number of

Scroll to Top