3.twisted client.getPage的使用

1.client.getPage 返回一个defer。 是异步的。

#coding:utf8from twisted.internet import  reactorfrom twisted.web import clientIP="202.102.224.68"def print_fun(x):print xdef run():    defer=client.getPage("http://freeapi.ipip.net/"+IP)    defer.addCallback(lambda x:print_fun(x))    reactor.callLater(2,run)run()reactor.run()
python test.py运行即可
为了能够后台运行此程序 ,可以通过如下方式:
#coding:utf8from twisted.internet import  reactorfrom twisted.web import clientfrom twisted.application.service import  ApplicationIP="202.102.224.68"def print_fun(x):print xdef run():    defer=client.getPage("http://freeapi.ipip.net/"+IP)    defer.addCallback(lambda x:print_fun(x))    reactor.callLater(2,run)run()application=Application("test")
twistd -y test.py运行即可。 其会直接后台运行。并在当前目录生成twistd.log twistd.pid文件。 程序的print输出都被写入到了twisd.log中

[[email protected] testfiledir]# tail -f  twistd.log

2016-07-07 16:57:33+0800 [-] ["中国","河南","郑州","","联通"]

2016-07-07 16:57:33+0800 [HTTPPageGetter,client] Stopping factory <HTTPClientFactory: http://freeapi.ipip.net/202.102.224.68>

2016-07-07 16:57:33+0800 [-] ["中国","河南","郑州","","联通"]

2016-07-07 16:57:33+0800 [HTTPPageGetter,client] Stopping factory <HTTPClientFactory: http://freeapi.ipip.net/202.102.224.68>

2016-07-07 16:57:33+0800 [-] Starting factory <HTTPClientFactory: http://freeapi.ipip.net/202.102.224.68>

2016-07-07 16:57:35+0800 [-] Starting factory <HTTPClientFactory: http://freeapi.ipip.net/202.102.224.68>

2016-07-07 16:57:36+0800 [-] ["中国","河南","郑州","","联通"]

2016-07-07 16:57:36+0800 [HTTPPageGetter,client] Stopping factory <HTTPClientFactory: http://freeapi.ipip.net/202.102.224.68>

2016-07-07 16:57:37+0800 [-] Starting factory <HTTPClientFactory: http://freeapi.ipip.net/202.102.224.68>

2016-07-07 16:57:39+0800 [-] Starting factory <HTTPClientFactory: http://freeapi.ipip.net/202.102.224.68>

2016-07-07 16:57:41+0800 [-] Starting factory <HTTPClientFactory: http://freeapi.ipip.net/202.102.224.68>

2016-07-07 16:57:42+0800 [-] ["中国","河南","郑州","","联通"]

2016-07-07 16:57:42+0800 [HTTPPageGetter,client] Stopping factory <HTTPClientFactory: http://freeapi.ipip.net/202.102.224.68>

2016-07-07 16:57:43+0800 [-] Starting factory <HTTPClientFactory: http://freeapi.ipip.net/202.102.224.68>





				
时间: 2024-10-30 07:23:43

3.twisted client.getPage的使用的相关文章

Twisted异步编程--Deferred

Twisted异步编程--Deferred Twisted异步编程 并发编程介绍 等待回应 不等待数据 非阻塞调用 callback Deferred Deferred解决的问题 Deferred--数据即将到来的信号 callback 错误处理:errback 结论 参考资料 这篇文档介绍了异步编程模型,以及在Twisted中抽象出的Deferred--象征着"承诺了一定会有的"结果,并且可以把最终结果传递给处理函数(Python中实现了__call__()方法的对象都可以称之为&q

转载:用python爬虫抓站的一些技巧总结

原文链接:http://www.pythonclub.org/python-network-application/observer-spider 原文的名称虽然用了<用python爬虫抓站的一些技巧总结>但是,这些技巧不仅仅只有使用python的开发可以借鉴,我看到这篇文章的时候也在回忆自己做爬虫的过程中也用了这些方法,只是当时没有系统的总结而已,谨以此文为鉴,为以前的爬虫程序做一个总结. 转载原文如下: 学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,

爬虫总结2

5.验证码的处理 碰到验证码咋办?这里分两种情况处理: google那种验证码,凉拌 简单的验证码:字符个数有限,只使用了简单的平移或旋转加噪音而没有扭曲的,这种还是有可能可以处理的,一般思路是旋转的转回来,噪音去掉,然 后划分单个字符,划分好了以后再通过特征提取的方法(例如PCA)降维并生成特征库,然后把验证码和特征库进行比较.这个比较复杂,一篇博文是说不完的, 这里就不展开了,具体做法请弄本相关教科书好好研究一下. 事实上有些验证码还是很弱的,这里就不点名了,反正我通过2的方法提取过准确度非

[转]用python爬虫抓站的一些技巧总结 zz

来源网站:http://www.pythonclub.org/python-network-application/observer-spider 学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本,写过简单的验证码识别的脚本,本来想写google music的抓取脚本的,结果有了强大的gmbox,也就不用写了. 这些脚本有一个共性,都是和web相关的,总要用到获取链接的一些方法,再加上sim

python爬虫抓网页的总结

python爬虫抓网页的总结 更多 python 爬虫 学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本,写过简单的验证码识别的脚本,本来想写google music的抓取脚本的,结果有了强大的gmbox,也就不用写了. 这些脚本有一个共性,都是和web相关的,总要用到获取链接的一些方法,再加上simplecd这个半爬虫半网站的项目,累积不少爬虫抓站的经验,在此总结一下,那么以后做东西也就不

爬虫模块之解决IO

一 asyncio模块 asyncio模块:主要是帮我们检测IO(只能是网路IO). @asyncio.coroutine:装饰器 tasks:任务列表 get_event_loop:起任务 run_until_complete:提交的方式,检测任务的执行 asgncio.gather(任务列表):直接执行任务 close:关闭任务 open_connection:建立链接 yield from:如果阻塞就切换到另外一个任务 sleep:模仿网络阻塞IO write:将数据包准备好 send.d

爬虫高性能相关(主要基于异步io)

一背景常识 爬虫的本质就是一个socket客户端与服务端的通信过程,如果我们有多个url待爬取,采用串行的方式执行,只能等待爬取一个结束后才能继续下一个,效率会非常低. 需要强调的是:串行并不意味着低效,如果串行的都是纯计算的任务,那么cpu的利用率仍然会很高,之所以爬虫程序的串行低效,是因为爬虫程序是明显的IO密集型程序. 关于IO模型详见链接:http://www.cnblogs.com/linhaifeng/articles/7454717.html 那么该如何提高爬取性能呢? 二同步,异

爬虫关于高性能方面

阅读目录 一 背景知识 二 同步.异步.回调机制 三 高性能 一 背景知识 爬虫的本质就是一个socket客户端与服务端的通信过程,如果我们有多个url待爬取,只用一个线程且采用串行的方式执行,那只能等待爬取一个结束后才能继续下一个,效率会非常低. 需要强调的是:对于单线程下串行N个任务,并不完全等同于低效,如果这N个任务都是纯计算的任务,那么该线程对cpu的利用率仍然会很高,之所以单线程下串行多个爬虫任务低效,是因为爬虫任务是明显的IO密集型程序. 关于IO模型详见链接:http://www.

如何提升爬虫性能相关的知识点

如何提升爬虫性能相关的知识点 爬虫的本质是伪造socket客户端与服务端的通信过程,如果我们有多个url待爬取,只用一个线程且采用串行的方式执行,那只能等待爬取一个url结束后才能继续下一个,这样我们就会发现效率非常低. 原因:爬虫是一项IO密集型任务,遇到IO问题就会阻塞,CPU运行就会停滞,直到阻塞结束.那么在CPU等待组合结束的过程中,任务其实是呈现出卡住的状态.但是,如果在单线程下进行N个任务且都是纯计算的任务的话,那么该线程对cpu的利用率仍然会很高,所以单线程下串行多个计算密集型任务