我有一个非常简单的测试蜘蛛,它没有解析。但是我在start_requests方法中将大量的url(500k)传递给spider并且看到非常高(99/100%)的cpu使用率。这是预期的行为吗?如果是这样我怎么能优化它(可能是批处理和使用spider_idle?)
class TestSpider(Spider):
name = 'test_spider'
allowed_domains = 'mydomain.com'
def __init__(self, **kw):
super(Spider, self).__init__(**kw)
urls_list = kw.get('urls')
if urls_list:
self.urls_list = urls_list
def parse(self, response):
pass
def start_requests(self):
with open(self.urls_list, 'rb') as urls:
for url in urls:
yield Request(url, self.parse)
答案 0 :(得分:1)
我认为这里的主要问题是你要抓取太多链接,尝试添加规则以避免抓取没有包含你想要的链接。
Scrapy提供了非常有用的文档,请查看它们: http://doc.scrapy.org/en/latest/topics/spiders.html