0

私は 500 万以上の URL をクロールする必要があるクローラーを構築しています。

self.start_urls = get_list_from_file(file_path)

そのため、URLを1つずつメモリにロードして、メモリコストを低く抑える方法があるかどうか疑問に思っています。

4

1 に答える 1

2

もちろん、スパイダーでstart_requestsメソッドを使用してください。例えば:

def start_requests(self):
    reader = csv.reader(open('urls.csv'))
    for row in reader:
        url = row[0]
        yield Request(url=url)

get_list_from_fileさらに、関数をジェネレーターとして機能させることをお勧めします。

それが役立つことを願っています。

于 2013-07-08T09:01:02.693 に答える