不确定这是否可行,花点时间看看类似的问题,但仍然不清楚。对于一个网站的网址列表,我需要得到作为一个起点的html。在
我有一个类,它包含这些url的列表,该类返回一个自定义迭代器,帮助我遍历这些url以获得html(简化如下)class Url:
def __init__(self, url)
self.url = url
def fetchhtml(self)
import urllib2
response = urllib2.urlopen(self.url)
return response.read()
class MyIterator:
def __init__(self, obj):
self.obj=obj
self.cnt=0
def __iter__(self):
return self
def next(self):
try:
result=self.obj.get(self.cnt)
self.cnt+=1
return result
except IndexError:
raise StopIteration
class Urls:
def __init__(self, url_list = []):
self.list = url_list
def __iter__(self):
return MyIterator(self)
def get(self, index):
return self.list[index]
2-我希望能像
^{pr2}$
3-我的问题是我想批处理所有的请求,而不是让fetchhtml按顺序操作我的列表,一旦它们完成,然后提取图像列表。在
有没有办法做到这一点,也许使用线程和队列?如果不按顺序运行,我不知道如何使对象的列表理解像这样工作。也许这是错误的方法,但我只想批处理由列表或dict理解中的操作启动的长时间运行的请求。提前谢谢