私はこれに対する解決策をかなり探しましたが、おそらくそれは私の側の単なるエラーです。
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 値を項目として完全にインポートする必要があります。これを達成する方法はありますか?