已阅读:84,872 次
Python 基于Twisted框架的文件夹网络传输源码
ian | Python | 2012/03/14


由于文件夹可能有多层目录,因此需要对其进行递归遍历。 本文采取了简单的协议定制,定义了五条命令,指令Head如下: Sync:标识开始同步文件夹 End:标识结束同步 File:标识传输的文件名(相对路径) Folder:标志文件夹(相对路径) None:文件内容 每条命令以CMB_BEGIN开始,以CMB_END结束。 客户端需要对接收缓冲做解析,取出一条一条的指令,然后根据指令的Head做相应的处理,比如创建文件夹、写入文......
Read more

已阅读:7,615 次
Python自定义类的数组排序
ian | Python | 2012/03/11


首先把实现方法写出来,其实很简单,只需要一句代码即可: productlist.sort(lambda p1, p2:cmp(p1.getPrice(), p2.getPrice())) 数组productlist中存储的是自定义类Product,Product有一个方法是返回商品的价格,于是对productlist按照Product的价格从低到高进行排序,仅需要如此简单的一行代码即可实现。 Python真的是一门简洁而强大的语言,实际上,我也是从写出一行代码之后,才真正感受到这门语言的魅力。 写到这里,顺便介......
Read more

已阅读:25,243 次
Django URL传递参数的方法总结
ian | Python | 2012/02/28


1 无参数情况 配置URL及其视图如下: (r'^hello/$', hello) def hello(request): return HttpResponse("Hello World") 访问http://127.0.0.1:8000/hello,输出结果为“Hello World” 2 传递一个参数 配置URL及其视图如下,URL中通过正则指定一个参数: (r'^plist/(.+)/$', helloParam) def helloParam(request,param1): return HttpResponse("The param is : " + param1) 访问http://127.0.0.1:8000/plist/china,输出结果为"The param is : china" 3 传递多个参数 参照第二种......
Read more

已阅读:6,008 次
Python httplib关于User-Agent导致的异常结果
ian | Python | 2012/01/31


在写爬虫抓取苏宁页面信息的过程中,遇到一个让人纠结的问题。最开始的代码如下: domin = "www.suning.com" subdomin = "/emall/prd____722554_.html" conn = httplib.HTTPConnection(domin) conn.request('GET',subdomin) result = conn.getresponse().read() print result 发现response状态为200,但是内容为空,这个问题很奇怪,一开始以为是代码出现异常,但是把域名换成其他网站的URL时,结果却是正常的。 于是,抓包看看HTTP请求是否正确,发现HTTP请求包......
Read more

已阅读:23,824 次
Scrapy爬虫教程之URL解析与递归爬取
ian | Python,新技术研讨 | 2012/01/24


前面介绍了Scrapy如何实现一个最简单的爬虫,但是这个Demo里只是对一个页面进行了抓取。在实际应用中,爬虫一个重要功能是"发现新页面",然后递归的让爬取操作进行下去。 发现新页面的方法很简单,我们首先定义一个爬虫的入口URL地址,比如《Scrapy入门教程》中的start_urls,爬虫首先将这个页面的内容抓取之后,解析其内容,将所有的链接地址提取出来。这个提取的过程是很简单的,通过一个html解析库,将这......
Read more

已阅读:17,686 次
Scrapy入门教程
ian | Python,新技术研讨 | 2012/01/08


本文参考Scrapy Tutorial里面的文档,翻译出来加上自己的理解,供大家学习。 在本文中,我们将学会如何使用Scrapy建立一个爬虫程序,并爬取指定网站上的内容,这一切在Scrapy框架内实现将是很简单轻松的事情。 本教程主要内容包括一下四步: 1. 创建一个新的Scrapy Project 2. 定义你需要从网页中提取的元素Item 3. 实现一个Spider类,通过接口完成爬取URL和提取Item的功能 4. 实现一个Item PipeLine类,完成Item的存储功......
Read more

已阅读:6,083 次
Emacs中配置Python-mode的代码自动补全
ian | Emacs,Python | 2011/12/31


需要安装插件:pymacs、python-mode、pycomplete 首先安装python-mode emacs有自带的python模式,但是大家一般都是用这个python-mode.el的拓展插件,功能方面要强大好用一些。下载:http://www.rwdev.eu/python/pycomplete/python-mode.el 把下载的python-mode.el文件放到emacs的插件加载目录中,并在.emacs配置文件中加入如下配置信息: ;;文件关联,自动将py后缀的文件和pyhton-mod关联 (load "python-mode.el") (setq auto-mode-alist (cons '("\\.py$" . python-mode) ......
Read more

已阅读:5,662 次
开源python网络爬虫框架Scrapy – 安装教程
ian | Python,新技术研讨 | 2011/12/27


在《开源python网络爬虫框架Scrapy介绍》一文中介绍了Scrapy这个Python爬虫框架。Scrapy是一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。 下面介绍Scr......
Read more

已阅读:11,915 次
开源python网络爬虫框架Scrapy介绍
ian | Python,新技术研讨 | 2011/12/25


所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的HTML数据。不过由于一个网站的网页很多,而我们又不可能事先知道所有网页的URL地址,所以,如何保证我们抓取到了网站的所有HTML页面就是一个有待考究的问题了。 一般的方法是,定义一个入口页面,然后一般一个页面会有其他页面的URL,于是从当前页面获取到这些URL加入到爬虫的抓......
Read more