Tag Archives: Python

gevent中与”线程”相关的几个例子

标题虽然说是线程,其实gevent用的是“greenlet”,可能翻译成”微线程”更合适一些。

1、线程池

2、 一生产者多消费者

3、多生产者(用Pool),1消费者(单独线程)

这个略反常规,如果我们假设生产者是I/O密集的Job,由Pool中的Job产生。而消费者只有1个。

用了kill,写的不太优雅,各路大神可以给提提意见。
[c[……]

继续阅读

Python中使用 词典+可变参数 简化 初始化+配置 工作

在Python中,是支持可变长参数,甚至词典参数的,具体见 《Python中函数的参数传递与可变长参数》

而使用词典参数的方式,可以让我们节省很多不必要的初始化工作。

以初始化MySQL的conn为例:

Before:

After:

怎么样?简单了很多吧?

 

Python中使用selenium抓取Javascript动态页面

selenium是一套用于测试WebUI的自动化测试框架,它通过调用Chrome、Firefox来完成动态页面(含Javascript)的加载,因此也可以用来完成动态网页抓取。

1、下载selenium

2、启动selenium-standalone

上面启动的这个,是一个网络服务器,它可以接受一个url串,然后在自己进程内启动浏览器,解析并与客户端交[……]

继续阅读

Python抓取框架Scrapy快速入门教程

Scrapy是一个非常好的抓取框架,它不仅提供了一些开箱可用的基础组建,还能够根据自己的需求,进行强大的自定义。本文对基本用法和常见问题做一个记录。

1、安装

Scrapy虽然是python的模块,但是依赖包比较多,所以我推荐使用apt安装:

编译狂人 或者 处女座 可以从Pypi上下载自行编译安装。友情提示下:pip或者ezsetup上的自动依赖是不全的,需要自己再补其他包。

本文所用的版本是当前最新版:0[……]

继续阅读

Python中函数的参数传递与可变长参数

转载自:Python中函数的参数传递与可变长参数

1.Python中也有像C++一样的默认缺省函数

定义有默认参数的函数时,这些默认值参数位置必须都在非默认值参数后面。

调用时提供默认值参数值时,使用提供的值,否则使用默认值。

2.Python可以根据参数名传参数

第4行,没有指定参数名,按照顺序传参数。

第5行,指定参数名,可以按照[……]

继续阅读