python---twisted的使用,使用其模拟Scrapy

python---twisted的使用,使用其模拟Scrapy

python---twisted的使用,使用其模拟Scrapy_51CTO博客_python and or的使用

https://blog.51cto.com/u_15127513/4786890

一:简单使用

一:简单使用
登录后复制 
from twisted.internet import defer
from twisted.web.client import getPage
from twisted.internet import reactor

def one_done(arg):
    print(arg)

def all_done(arg):
    print("all done")
    reactor.stop()

@defer.inlineCallbacks
def task(url):
    res = getPage(bytes(url,encoding="utf-8"))  #获取页面,发送http请求,是使用select池将所有socket请求保存,依据此进行计数。
    print('6',type(res))    #<class 'twisted.internet.defer.Deferred'>
    res.addCallback(one_done)   #对每一个请求都添加一个回调方法
    yield res   #返回他

start_url_list = [
    'http://www.baidu.com',
    'http://www.github.com',
]

defer_list = []
for url in start_url_list:
    v = task(url)   #发送请求后立即返回,不等待返回,v是一个特殊对象,标志你发送到那个请求
    print(v,type(v))
    defer_list.append(v)

d = defer.DeferredList(defer_list)  #将上面的特殊对象列表一起放入DeferredList
d.addBoth(all_done)  #为所有对象添加回调

reactor.run()  #会一直循环,我们需要在任务执行完毕后关闭。含有计数器,执行一个任务,会执行一次one_done,计数减一。单任务执行完毕,计数为0,执行all_done


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值