如何解决scrapyd-在单独的进程之间共享内存?
我通过在scrapyd中发布新的start_urls
同时运行多个蜘蛛,它创建了单独的进程。
如何获取内存中所有已爬网的项目? 所有的蜘蛛什么时候完成工作?我需要收集项目并将其写入单个.csv文件中。
这是我的蜘蛛:
class MySpider(scrapy.Spider):
name = 'myspider'
def __init__(self,*args,**kwargs):
super(MySpider,self).__init__(*args,**kwargs)
self.domain = kwargs.get('domain','')
self.start_urls = kwargs.get('start_urls','')
def start_requests(self):
if self.domain:
yield scrapy.Request(self.domain + '/products.json?limit=1',self.batching)
else:
for url in json.loads(self.start_urls):
yield scrapy.Request(url,self.parse)
def batching(self,response):
data = json.loads(response.text)
total = data['total_page']
batch_size = 3
page_number = math.ceil(total / 50)
lst = list(range(1,page_number + 1))
for j in range(0,len(lst),batch_size):
data = [
("project","properties"),("spider",self.name),]
start_urls = [self.domain + '/products.json?limit=100&page=%d' % i for i in
lst[j: j + batch_size]]
json_urls = json.dumps(start_urls)
data.append(("start_urls",json_urls))
treq.post("http://localhost:6800/schedule.json",data=data,timeout=5,persistent=False)
def parse(self,response):
#parse response
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。