我想将url传递给任务功能,以便一次使用获得不同的网站内容。 但看起来它无法完成。它将毫无例外地停止。
from scrapy.selector import Selector
def get_response_callback(content):
txt = str(content,encoding='utf-8')
resp = Selector(text=txt)
title = resp.xpath('//title/text()').extract_first()
print(title)
@defer.inlineCallbacks
def task(*args,**kwargs):
# url = 'http://www.baidu.com'
url=kwargs.get('url')
print(url)
d=getPage(url.encode('utf-8'))
d.addCallback(get_response_callback)
yield d
def done(*args,**kwargs):
reactor.stop()
task_list = []
url_list = ['http://www.baidu.com','http://www.bing.com','http://www.qq.com']
for i in url_list:
d=task(url=i)
task_list.append(d)
dd = defer.DeferredList(task_list)
dd.addBoth(done) # should use done1 to avoid not stoping the function
reactor.run()
如何将参数传递给任务函数?