1

私はこれに対する解決策をかなり探しましたが、おそらくそれは私の側の単なるエラーです。

python/scrapy フレームワークを使用して、いくつかのサイトをスクレイピングしています。サイトは、データセットの .CSV ファイルを提供してくれます。そのため、提供されるグリッドビューを行ごとに解析する代わりに、scrapy を設定して .CSV ファイルをダウンロードし、CSV ファイルを開いて各値を Scrapy アイテムとして書き込みます。

同時リクエストを 1 に設定しました。これにより、すべてのアイテムの追加が完了するまで、Scrapy がリスト内の次のリクエストを解析できなくなると考えました。残念ながら、.CSV ファイルが大きいほど、Scrapy が行を解析して項目としてインポートするのに時間がかかります。通常、次のリクエストを行う前に、500kb の CSV ファイルの約半分を処理します。

     logfiles = sorted([ f for f in os.listdir(logdir) if f.startswith('QuickSearch')])
     logfiles = str(logfiles).replace("['", "").replace("']", "")
     ##look for downloaded CSV to open
     try:
        with open(logfiles, 'rU') as f: ##open
            reader = csv.reader(f)
            for row in reader:
               item['state'] = 'Florida'
               item['county'] = county ##variable set from response.url
               item['saleDate'] = row[0]
               item['caseNumber'] = row[2]
               ..
               yield item
     except:
        pass
     f.close()
     print ">>>>>>>>>>>F CLOSED"
     os.remove(logfiles)

次のリクエストに進む前に、Scrapy がすべての CSV 値を項目として完全にインポートする必要があります。これを達成する方法はありますか?

4

0 に答える 0