2017-09-24 5 views
0

私はドメインのリストにScrapyを実行している、とページの多くは、このエラーを取得しています Couldn't bind: 24: Too many open files.Scrapyエラー:バインドできませんでした:24:開いているファイルが多すぎます

私はこれを取得していませんでした私のLinuxマシン上でエラーが発生しましたが、今は私のMac上で取得しています。私はこれがSierra上で動作するかどうか、あるいはおそらく私がScrapy設定を省いたかどうかはわかりません。私はulimitをチェックして、unlimitedを返すので、私はと思っています。それです。

それは私のクモをどうする場合には、ここでそのです:

class JakeSpider(CrawlSpider): 
    name = 'jake' 
    allowed_domains = allowedDomains 
    start_urls = startUrls 
    rules = (
     Rule(LinkExtractor(), callback='parse_page', follow=True), 
    ) 


    def parse_page(self, response): 
     page = response.url 
     domain = urlparse(page).netloc 
     domain = domain.replace('www.','') 
     #print(domain, 'is domain and page is', page) 
     linksToGet = getHotelUrlsForDomain(domain) 
     #if(len(linksToGet) == 0): 
     # print('\n ... links to get was zero \n') 
     #print('linksToGet = ', linksToGet) 
     links = response.xpath('//a/@href').extract() 
     for link in links: 
      if link in linksToGet: 
       print('\n\n\n found one! ', link, 'is on', domain, ' and the page is', page,'\n\n\n') 
       with open('hotelBacklinks.csv', 'a') as csvfile: 
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames) 
        writer.writerow({'hotelURL':link, 'targetDomain': domain}) 

編集:ここではそれらのいずれかの完全なエラーラインがあるが。それは擦り傷を起こさせているわけではありませんが、このような行がたくさんあるので、そうでなければ多くのページを手に入れることはできません。エラー行: 2017-09-24 14:21:29 [scrapy.core.scraper] ERROR: Error downloading <GET https://alabamatheatre.com/>: Couldn't bind: 24: Too many open files.

ありがとうございました。

+1

ここでエラーが発生しています。エラーの原因となるコードの行を含め、完全なエラートレースバックを含めるように質問を編集します。 –

+2

また、csvファイルをすべてのリンクで閉じて再オープンするのではなく、関数の一番上で一度開く方がよいでしょう。 –

+0

@ジョンゴードン、ありがとう、私はそれらのいずれかに追加しました。これはScrapyから記録されたエラーです。それは重大なエラーではありませんので、原因となっているコードの特定の行でトレースバックを取得していません。また、csvのチップのおかげで、私はそれを修正しました。 –

答えて

0
  1. すべてのスクラップデータの保存には、pipelineを使用する必要があります。
  2. 多くの通話機能があるので、このエラーが発生しました。parse_pageすべての関数が同じファイルを開いて書き込もうとします。ファイルへの書き込みはブロック操作です ここにはScrapyのdocがありますhttps://doc.scrapy.org/en/latest/topics/item-pipeline.html
関連する問題